DButils的使用
DButils的使用
DButils的使用
一丶DButils是什么?
DButils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List,是java编程中的数据库操作实用工具。它使JDBC编程更加方便,简单。在JDBC编程中,资源的关闭是显式的,极易导致编程出现错误,DBUtils把这些工作抽象出来,使得程序员编程时仅需要关心正真的问题,即对数据库的增删。
二丶DButils类
为了实现一些提供给常规工作有用方法的类(关闭连接丶装载JDBC驱动程序等),其里面的所有的方法都是静态(static)的。
1. Close方法:DButils提供了三个重载的关闭方法。这些方法检查所提供的参数是不是空NULL,if not NULL,它们就会关闭连接(Connection)丶声明(Statement)或结果集(ResultSet)对象。
2. CloseQuietly方法:CloseQuietly方法不仅可以隐藏一些程序抛出的SQL Exception,还可以在连接(Connection)丶声明(Statement)或结果集(ResultSet)为空(NULL)的情况下避免关闭。在重载CloseQuietly方法时,使用CloseQuietly(Connection *conn,Statement stmt,ResultSet rs),最后的块就可以只需要调用这个方法即可。
3. commitAndCloseQuietly方法:用来提交连接然后关闭连接
4. commitAndClose方法:作用同3,和3不同的是其在关闭连接时向上抛出SQL异常,而3不会抛出SQL异常。
5.Load Driver(string drive Class Name):重载并注册了JDBC驱动程序,如果成功返回true,无需捕捉ClassNotFoundException异常,通过返回值就可以判断驱动程序是否加载成功。
三丶ResultSetHandler接口
此接口执行处理一个Java.SQL.ResultSet,将数据转变并处理为任何一种形式,这样又更加方便其应用,使用起来也更加简单。
1.Array Handler:将ResultSet中第一行的数据转化为对象数组。
2.ArrayListHandler:将ResultSet中所有的数据转化为List,List中存放的是Object[]。
3.Bean Handler:将ResultSet中第一行的数据转化为类对象。
4.BeanListHandler:将ResultSet中所有的数据转化为List,List中存放的是类对象。
5.此外还有ColumnListHandler,Keyed Handler Map Handler丶Map List Handler丶Scalar Handler等方法。
四丶Query Runner类
不仅简化了SQL查询操作,并且它与ResultSetHandler接口组合一起使用可以完成绝大多数的数据库操作,大大减少了我们作为程序猿所需要写的代码量。
此类包含了QueryRunner()和Query Runner(DataSource ds)方法。
五丶使用DButils的基本步骤
1.导入DbUtils使用的jar包
2.新建DbUtilsTest.java单元测试类
3.查看现有数据库数据
4.输入所需操作的代码
5.查看执行后的数据库结果
6.接下来测试插入方法,插入一条新数据
7.查看数据库执行结果
8.测试更新,更新刚插入的数据
六丶DBUtils设计原则
①小 - DBUtils库的大小非常小,类较少,因此易于理解和使用。
②透明 - DBUtils库在幕后工作量不大。 它只需要查询和执行。
③快速 - DBUtils库类不会创建许多后台对象,并且在数据库操作执行方面非常快。
七丶如何配置DBUtils?
1.配置Java
①JAVA_HOME -此环境变量应该指向你安装JDK的目录,例如C:\ Program Files\ Java \ JDK1.5.0。
②CLASSPATH - 此环境变量应设置适当的路径,例如C:\ Program Files \ Java \ jdk1.5.0_20 \ jre \ lib。
③PATH - 此环境变量应指向适当的JRE bin,例如C:\ Program Files \ Java \ jre1.5.0_20 \ bin。
2.安装数据库
安装适合自己的系统的数据库,一般方便学习的话,可以使用MySql,基于自己计算机的操作系统选择32bit或64bit从官网下载安装即可。
3.安装Database Drivers
最新的JDK包括JDBC-ODBC Bridge驱动程序,它使大多数开放式数据库连接(ODBC)驱动程序可供使用JDBC API的程序员使用。
4.从官网下载Commons DBUtils Archive
下载下来后(当然也可以使用maven工程),名称为commons-dbutils-1.6.jar,面总共包含三个包。
其中的org.apache.commons.dbutils包主要有如下的接口和类:
ResultSetHandler——将ResultSet转换为别的对象的工具。
BeanProcessor——匹配列名到Bean属性名,转换结果集列到Bean对象的属性。
DbUtils——一个JDBC辅助工具集合。
ProxyFactory——产生JDBC接口的代理实现。
QueryLoader——属性文件加载器,用于加载属性文件中的SQL到内存中。
QueryRunner——使用可插拔的策略执行SQL查询并处理结果集。
ResultSetIterator——包装结果集为一个迭代器。
org.apache.commons.dbutils.handlers包为第一个包中ResultSetHandler接口的实现类:
AbstractListHandler——将ResultSet转化为List类型的抽象类。
ArrayHandler——将ResultSet转化为Object[]类型的实现类。
ArrayListHandler——将ResultSet转化为List<Object[]>类型的实现类。
BeanHandler——将ResultSet转化为JavaBean类型的实现类。
BeanListHandler——将ResultSet转化为List类型的实现类。
ColumnListHandler ——将ResultSet转化为List类型的实现类。
MapHandler ——将ResultSet转换为Map类型的实现类。
MapListHandler ——将ResultSet转换为List类型的实现类。
KeyedHandler——将ResultSet转换为Map类型的实现类。
ScalarHandler ——将ResultSet的一个列转化到一个对象。
org.apache.commons.dbutils.wrappers包:
SqlNullCheckedResultSet——在每个getXXX方法上检查SQLNULL值的包装类。
StringTrimmedResultSet——取出结果集中字符串左右空格的ResultSet包装类。
5.配置Apache Common DBUtils环境
设置环境变量 APACHE_HOME 到 C:\Apache
6.配置CLASSPATH变量
设置环境变量 CLASSPATHto%CLASSPATH%;%APACHE_HOME%\commons-dbutils-1.7.jar;mysql-connector-java-5.1.28.jar;commons-dbcp2-2.1.1.jar;commons-pool2-2.4.3.jar;commons-logging-1.2.jar;
八丶常见问题
1.QueryRunner 下的方法不是每个方法都设成关闭连接的
2. Dbutils 在做表到对象的映射时要求列名和对象的属性名必须一致
3.必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应,而不要求JavaBean的私有成员与表结果集列名一一对应。
4.DBUtils执行insert插入操作的时候,无法返回自增主键。
5.DBUtils可以将结果集封装为各种类型,主要有:Bean/List,Map/List/Map,数组/List<数组>,列/List<列>,这些类型。
本文地址:https://blog.csdn.net/yybx711/article/details/108970397
下一篇: MySQL循环结构