一、概念DbUtils是Apache提供的一个开放源代码工具库,用于轻松封装JDBC,从而简化JDBC APP应用程序的开发,而不影响程序性能简单地说,结合数据库连接池简化了对数据库的操作代码,数据库连接池简化了连接操作,DBUtils简化了增删修改操作,基础是通过DBUtils工具实现的。 关注用法和实现逻辑即可。
二、常用实现类ArrayHandler :查询的各个数据封装在一个数组中
ArrayListHandler :查询的多个数据封装在多个集合中,集合中的元素是数组
(最常用)BeanHandler :查询的各个数据封装在一个对象中
33558 www.Sina.com/bean listhandler :查询的数据封装在一个list对象中
MapHandler :将查询的各个数据封装到一个map中
MapListHandler :查询的多个数据封装包含映射元素的集合
33558 www.Sina.com/query runner.update (SQL ) :添加、删除和修改
queryrunner.query(SQL,rsh ) :对于查询
步骤:
1、引导DBUtilsjar包、mysql驱动程序、c3p0包。 从网上下载就行了。
2、配置c3p0的配置文件(不了解c3p0的学生应该了解c3p0,因为他们需要一起使用c3p0和DBUtils ) )。
3、基本操作演示
删除方法演示:
添加:
删除:
修正:
查询方法演示:
(最常用)
三、基本用法
BeanHadnler类实现ResultSetHandler接口,通过handle方法封装数据,简单地说就是从类的字节码文件中生成对象,然后将数据库查询的数据发送给对象
--针对单条或多条数据的老版用法--(适合了解实现原理,不建议使用,被下面两个方法所替代):
实现原理与上述一致,但调用方法不同,返回值的类型也不同。
--查询单条数据即返回单个对象--(现在常用)1,使用BeanHadnler和BeanListHandler类时需要小心。 这两个类提供了查询数据的封装,但封装会根据类中的set方法将数据库返回到数据封装。 假设数据库表有四个属性。 id,name但是你的收件人只有name和age两个成员变量,它只是在类中匹配了name和age的set方法,只代入并封装这两个成员变量。--查询多条数据即返回一个List对象--(现在常用)
2 .由于根据对象中的set方法赋值,因此set方法名称需要格式。 如果set方法名称错误,并且封装时找不到与对象中的成员变量对应的set方法,则程序在缺省情况下此对象没有成员变量。 如果数据库具有名为sname的属性,并且对象必须接收此属性,则set方法的格式为四、注意事项(为博主自己测试结果,如有不对,欢迎大家请评论区指正共同进步),BeanHadnler和BeanListHandler类的实现为类
所以不要求接收对象的成员变量和数据库的属性个数完全一致。
---数据库student表列名称:
----Student类,为了便于演示,我只接收一个sname属性
---测试代码:
Student类的成员变量名与数据库一致为sname,且set方法名为setSname
输出结果:
Student类的成员变量名称与数据库不匹配,为name,但set方法名称仍为setSname
测试代码相同,输出结果。
在Student类中,成员变量名与数据库一致为sname,而set方法名为setsname
输出结果:
Student类的成员变量名与数据库不一致,为name,而set方法名为setSNaMe
输出结果:
在Student类中,成员变量名与数据库一致为sname,而set方法名为setname
输出结果:
set+sname(sname可以五个字符可以任意大小写)
BeanHadnler类和BeanListHandler类的实现由匹配对象中成员变量对应的set方法名进行赋值封装
BeanHadnler类和BeanListHandler类的实现基于举例演示:方法进行匹配包。