Java DbUtils 操作数据库(2)

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/68372ee0049dd61d5d82d23f32167500.html