目录
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连接数据库工具类的使用就和小伙伴分享到这里,有不足的地方还希望大家可以批评指正。
觉得不错记得点赞关注哟!
大灰狼陪你一起进步!
来源:oschina
链接:https://my.oschina.net/u/4359458/blog/4758839