Java如何获取数据库中的数据·案例

来源:互联网 发布:淘宝联盟分享给好友后, 编辑:程序博客网 时间:2024/06/10 00:37

Java如何获取数据库中的数据·案例

步骤简介:

加载驱动:

加载jdbc的驱动类Class.forName("com.mysql.jdbc.Driver")到jvm中。

 

建立连接:

使用DriverManager.getConnection(sql_url,username,pwd)方法返回一个Connection对象。

 

预编译sql语句:

通过Connection.prepareStatement(sql)方法,将sql语句进行预编译,返回一个PrepareStatement对象,该PrepareStatement对象能将参数化的 SQL 语句发送到数据库。

 

执行sql语句:

执行preparedStatement.executeQuery(sql);方法返回一个ResultSet类的对象,ResultSet类的对象中的内容是数据库中“查询到”的内容;(除了查询方法之外,也可以有增删改查)


获取数据库中的数据并任意操作:

通过ResultSet的next()方法,逐行读取数据库中的信息;可以将读取到的信息赋值给其他变量等供它用;

 

步骤图示:


代码show

1.  import java.sql.Connection;  

2. import java.sql.DriverManager;  

3.  import java.sql.PreparedStatement;  

4. import java.sql.ResultSet;  

5.  import java.sql.SQLException;  

6.   

7.  /** 

8.  * @author Administrator 

9.   *链接数据库,在这个java类中使用的是JDBC技术链接的数据库, 

10. *这技术需要一类三接口 

11.  *DriverManager类, 

12. *Connection接口,java.sql.Connection 

13.  *Statement接口,java.sql.Statement; 

14. *ResultSet接口,java.sql.ResultSet; 

15.  */  

16.public class GetSQLData {  

17.     public static void main(String[] args) {  

18.        //创建三个接口的对象  

19.         Connection connection = null;  

20.        PreparedStatement preparedStatement = null;  

21.         ResultSet resultSet = null;  

22.        //获取驱动类  

23.         try {  

24.            Class.forName("com.mysql.jdbc.Driver");//要确保已经导入了'mysql-connector-java-5.1.29.jar'(最后的版本号可以随意)  

25.             //com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();   番外小知识:该句与上一句的功能是一样,都是将Driver类加载到  

26.            //jvm中,并且该Driver类是经过初始化了的;(一个初始化了的Driver类被加载到jvm中,则就是该Driver完成了在jvm中的注册;如果仅仅是  

27.             //语句com.mysql.jdbc.Driver driver = null; 就不行,因为虽然加载了,但是没有初始化;  

28.        } catch (ClassNotFoundException e) {  

29.             System.out.println("获取驱动类失败");  

30.            e.printStackTrace();  

31.         }  

32.          

33.         //连接数据库:使用java.sql.DriverManagergetConnection方法以数据库url加上数据库的usernamepassword做参数;  

34.        try {  

35.             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/news","root","yujiawen");  

36.        } catch (SQLException e) {  

37.             System.out.println("连接数据库失败");  

38.            e.printStackTrace();  

39.         }  

40.          

41.         String sql = "select * from title";  

42.        try {  

43.             preparedStatement = connection.prepareStatement(sql);  

44.        } catch (SQLException e) {  

45.             // TODO Auto-generated catch block  

46.            e.printStackTrace();  

47.         }  

48.          

49.         try {  

50.            resultSet = preparedStatement.executeQuery(sql);  

51.         } catch (SQLException e) {  

52.            // TODO Auto-generated catch block  

53.             e.printStackTrace();  

54.        }  

55.           

56.        try {  

57.             while(resultSet.next())//ResultSet 对象具有指向其当前数据行的光标。  

58.                //最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false  

59.                 //所以可以在 while 循环中使用它来迭代结果集。  

60.            {  

61.                 int id = resultSet.getInt("id");  

62.                String name = resultSet.getString("name");  

63.                 String creator = resultSet.getString("creator");  

64.                System.out.println("id:"+id+" name:"+name+" creator:"+creator);  

65.             }  

66.        } catch (SQLException e) {  

67.             // TODO Auto-generated catch block  

68.            e.printStackTrace();  

69.         }  

70.          

71.           

72.        //关闭三个接口的对象  

73.         if(resultSet!=null)  

74.        {  

75.             try {  

76.                resultSet.close();  

77.             } catch (SQLException e) {  

78.                // TODO Auto-generated catch block  

79.                 e.printStackTrace();  

80.            }  

81.         }  

82.        if(preparedStatement!=null)  

83.         {  

84.            try {  

85.                 preparedStatement.close();  

86.            } catch (SQLException e) {  

87.                 // TODO Auto-generated catch block  

88.                e.printStackTrace();  

89.             }  

90.        }  

91.         if(connection!=null)  

92.        {  

93.             try {  

94.                connection.close();  

95.             } catch (SQLException e) {  

96.                // TODO Auto-generated catch block  

97.                 e.printStackTrace();  

98.            }  

99.         }  

100.    }  

101. }  

运行结果:

附:数据库中的数据:

原创粉丝点击