超好用的JDBC工具类,你get到了嘛?

独自空忆成欢 提交于 2020-11-29 12:11:01

目录

QueryRunner类

query()

update()  

batch()    

ResultHandler接口

BeanHandler        

BeanListHandler  

MapHandler          

MapListHandler    

案例分析


Hello,大家好哇,我是灰小猿,一个超会写bug的程序猿,

今天和大家分享一下在使用jdbc连接数据库时,为了我们对数据进行操作的方便性,而常用的工具类和接口的具体使用方法,关于Java的jdbc数据库连接池技术的讲解,感兴趣的小伙伴可以看我的这篇文章“不会吧不会吧,不会居然还有人不知道JDBC的连接池技术吧!”,

在Java的数据库应用开发中,我们经常会对存储在数据库中的数据进行一系列的增删改查等操作,但是如果按照传统的Statement 、PreparedStatement接口来执行sql语句的话,不但使用起来不太方便,而且会极大的增加我们的代码量,因此在实际进行数据库操作时,我们常用的是数据库工具类QueryRunner类和ResultHandler接口,

而且在通常情况下,该类和该接口是结合使用,即QueryRunner类处理sql语句,ResultHandler接口处理返回的结果集,

那么接下来我将会和大家分享一下它们的具体使用方法:

首先使用QueryRunner类需要导入相应的jar包,

我这里使用的是commons-dbutils-1.6.jar,jar包官方下载地址:

http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi

 

QueryRunner类

QueryRunner类的主要作用是用来处理sql语句,该类的常用方法有如下三种:

query()

Query()方法用来做数据查询的,该方法中常用的参数如下:

conn -用于执行查询的连接。

sql -要执行的查询。

params -替换参数。

rsh -将结果转换为对象的处理程序。

update()  

Update()方法是用来做增删改的,该方法中常用的参数如下;

conn -用于运行查询的连接。

sql -要执行的SQL。

param -替换参数。

batch()    

batch()用来做批处理的,他用于执行一批SQL INSERT,UPDATE或DELETE查询。

包括的参数是:

conn-用于运行查询的连接。调用方负责关闭此连接。

sql -要执行的SQL。

params-查询替换参数数组。此数组中的每一行都是一组批次替换值。

返回值为每个语句更新的行数。

 

ResultHandler接口

ResultHandler接口是用来处理结果集,可以将查询到的结果集转换成java对象,同时提供了4种实现类:

BeanHandler        

将结果集映射成java对象

BeanListHandler  

将结果集映射成List集合

MapHandler          

将结果集映射成Map集合

MapListHandler    

将结果集映射成MapList集合

 

案例分析

接下来用实际的案例来和大家演示一下使用方法:

实例一:查询id为30的学生的所有信息,并将结果映射成Java对象

ComboPooledDataSource cds = new ComboPooledDataSource("testc3p0");

Connection connection = cds.getConnection();

String sqlString = "select * from emp_table where id=30";

QueryRunner queryRunner = new QueryRunner();

Student student=queryRunner.query(connection, sqlString, new

BeanHandler(Student.class));    

System.out.println(student.getName());

 

实例二:查询指定姓名和年龄的学生所有信息,并将结果映射成Java对象

ComboPooledDataSource cds = new ComboPooledDataSource("testc3p0");

Connection connection = cds.getConnection();

String sqlString = "select * from emp_table where name=? and age=?";

QueryRunner queryRunner = new QueryRunner();

Student student=queryRunner.query(connection, sqlString, new

BeanHandler(Student.class),"李四",22);

System.out.println(student.getName());

 

实例三:查询某一个数据表,并将表中所有的结果映射成一个List集合

ComboPooledDataSource cds = new ComboPooledDataSource("testc3p0");

Connection connection = cds.getConnection();

String sqlString = "select * from emp_table";

QueryRunner queryRunner = new QueryRunner();

List<Student> students=queryRunner.query(connection, sqlString, new

BeanListHandler<Student>(Student.class));

for (Student student : students) {

System.out.println(student.getName());

}

实例四:向某一个数据表中插入指定数据

String sqlString="insert into emp_table(name,age) values (?,?)";

QueryRunner queryRunner = new QueryRunner();

int i = queryRunner.update(connection, sqlString, "赵六",68);

System.out.println(i);

 

最后是我使用QueryRunner类和ResultHandler接口实现的一个简单的员工信息管理系统,可以实现基本的员工信息的增删改查操作,效果如下:

感兴趣的小伙伴可以在此下载源码学习:

链接:https://pan.baidu.com/s/1-zAT7wAaxzp1ZHN0M_uY0w    提取码:lgcr

关于JDBC连接数据库工具类的使用就和小伙伴分享到这里,有不足的地方还希望大家可以批评指正。

觉得不错记得点赞关注哟!

大灰狼陪你一起进步!

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!