JDBC的基本查询操作

大一狗刚刚接触到jdbc

来说一下基本的分页查询(虽然我花了好一会儿才实现)

使用的MySQL数据库,里面装着学生信息

 1 Class.forName("com.mysql.cj.jdbc.Driver");
 2 
 3 
 4 //嗯~ o(* ̄▽ ̄*)o这里的驱动类写法改了,在mysql-connector-java 6后
 5 
 6 
 7 String url = "jdbc:mysql:://127.0.0.1:3306";
 8 String user = "root";
 9 String password = "123456789";
10 Connection connection =DriverManager.getConnection(url, user, password);
11 
12 //一如既往的常规操作,建立链接。。。

接下来啊,就有两种思路了。

1.使用MySQL的limit语句进行查询

2.对Resultset进行操作

先来第一种(用其他数据库的小伙伴们自己去找找其他数据库的语句哦(>—<))

 1 String sql01 = "SELECT COUNT(*) FROM sudent";
 2 Statement sta = connection.createStatement();
 3 ResultSet re01 = sta.executeQuery(sql01);
 4 int page = re01.getInt("id");//先找了一下总行数方便分页
 5 int id = 0;
 6 while (id < page/10) {
 7 String sql = "SELECT * FROM student LIMIT ?,?";
 8 PreparedStatement pre = connection.prepareStatement(sql);
 9 pre.setInt(1, id);
10 pre.setInt(2, 10);
11 pre.executeQuery();
12 ResultSet re02 = pre.executeQuery();//每十行作为一页
13 System.out.println(re02.getInt("id")+"\t"+re02.getString("name")+"\t"+re02.getString("sex")+"\t"+re02.getInt("password"));
14 System.out.println("**********************");//为了方便看效果就直接打印了(大家不要学我这么懒(⊙o⊙))
15 id = id+10;
16 re02.close();
17 pre.close();
18   }
19 System.out.println(page/10);
20 re01.close();
21 sta.close();
22 connection.close();//操作完一定记得关闭

 接下来是第二种,对Resultset的操作,这种方法适合少量数据的分页。毕竟一次数据太多,那啥。。。会炸的

String sql = "SELECT * FROM student";
Connection conn =DriverManager.getConnection(url, user, password);
Statement sta = conn.createStatement();
ResultSet re = sta.executeQuery(sql);
while(re.next()) {
    for (int i = 0; i < 10; i++) {
        System.out.println(re.getInt("id")+"\t"+re.getString("name")+"        
        \t"+re.getString("name")+re.getInt("password"));
        re.next();
    } System.out.println(
"*****************************"); }

这里还是先取得连接,创建Statement对象然后获取Resultset对象

紧接着用next()方法进行操作,可以理解为有一个光标,每使用一次next()光标就向下移动并返回一个布朗类型的值,刚被光标扫过的那一行数据可以被紧接着的getXxx()方法获取,每十个为一组进行输出。

猜你喜欢

转载自www.cnblogs.com/qrq-blog/p/9784694.html