java如何把数据库中的数据呈现_Java如何获取数据库中的数据·案例

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类的对象中的内容是数据库中“查询到”的内容;(除了查询方法之外,也可以有增删改查)

f89996da67afc8a99d7f94ddf19066c0.png

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

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

步骤图示:

459e8059e1e1035e682dfed3ddd249ea.png

代码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.DriverManager的getConnection方法以数据库url加上数据库的username和password做参数;

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.}

运行结果:

63d6c70d856f016e5d79d62494b7f265.png

附:数据库中的数据:

d3b48cd815187dc2763e8e8fe152ea15.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值