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

举报
灰小猿 发表于 2021/08/11 08:29:10 2021/08/11
【摘要】 ​ 目录QueryRunner类query()update()  batch()    ResultHandler接口BeanHandler        BeanListHandler  MapHandler          MapListHandler    案例分析Hello,大家好哇,我是灰小猿,一个超会写bug的程序猿,今天和大家分享一下在使用jdbc连接数据库时,为了我们对数据...

 

目录

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连接数据库工具类的使用就和小伙伴分享到这里,有不足的地方还希望大家可以批评指正。

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

大灰狼陪你一起进步!



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。