1 //查询,结果集中只有一条记录的情况
2 String sql = "select * from student_tb where id=?";
3 BeanHandler<Student> studentBeanHandler = new BeanHandler<>(Student.class); //<>中指定目标类型,()中指定目标类型的class
4 Student student = queryRunner.query(connection, sql, studentBeanHandler,1); //执行查询,,返回的就是目标类型,不必强转
5 System.out.println(student); //可通过getter()方法获取属性值(对应表中的字段值)
1 //查询,结果集中有多条记录的情况
2 String sql = "select * from student_tb";
3 BeanListHandler<Student> studentBeanListHandler = new BeanListHandler<>(Student.class); //要用List
4 List<Student> list = queryRunner.query(connection, sql, studentBeanListHandler); //返回值的类型是List<目标JavaBean>
5 //遍历这个list就是遍历结果集
增、删、改
1 //插入
2 String sql = "insert into student_tb (name,age,score) values (?,?,?)";
3 //queryRunner.update(connection, sql, "曹操",20,90); //返回值是int,受影响的记录数
4 Object[] values = {"曹操",20,90};
5 queryRunner.update(connection, sql,values ); //?部分的参数值也可以写成数组形式
增、删、改的用法都差不多,不再一一列举。
批量操作
语法:QueryRunner对象.batch(数据库连接,sql语句,Object[][]) ;
最后一个参数是二维数组,一行对应一个sql语句?部分的参数值。
如果使用的是连接池,可缺省第一个参数数据库连接。
1 //批量插入
2 String sql = "insert into student_tb (name,age,score) values (?,?,?)";
3 Object[][] values = {{"曹操", 20, 90}, {"刘备", 20, 90}, {"孙权", 18, 88}};
4 queryRunner.batch(connection, sql,values); //批量执行,返回的是int[],一个值对应一个sql语句影响的记录数
DbUtils的批量操作是批量执行相似的sql语句(只有?部分的值不同)。
Hibernate也是将结果集中的记录映射为实体对象,相比之下,DbUtils体积极小(只有一个jar包),没有hql一样复杂的操作,操作十分简便。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx