- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DBUtils对象持久化
一、介绍DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是在JDBC的基础上做了一层封装,主要是对结果集的封装,可以直接将查询出来的结果集封装成JavaBean,旨在简化JDBC代码混乱与重复。JDBC代码开发,存在很多难点:1)操作过程复杂,代码操作一个模式,大量的重复。2)结果集难以处理。3)到处都强制检查SQLException,影响代码的美观和可读性。补充:传统操作数据库的类指的是JDBC(java database connectivity:java数据库连接,java的数据库操作的基础API)。二、熟悉DBUtils在使用DBUtils之前,应该注意一些问题:1)DBUtils是JDBC的简单封装,可以和JDBC混合使用。2)DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean规范;其次Bean的getter与setter方法的名字与结果集的列名必须一一对应;不要求JavaBean的私有成员与表结果集列名一一对应。3)DBUtils可以将结果集封装为各种类型主要有:Bean/ListBean,Map/ListMap/MapMap,数组/List数组,列/List列等。对于MapMap的类型使用KeyedHandler作为结果集处理器,内层的Map是“列名-值对,外层的Map是“主键-内层Map的引用”,但此处的主键不一定就是数据库的主键,可以随意指定。4)DBUtils执行插入操作的时候,无法返回自增主键,这是一个很严重的问题,当然不能怪DBUtils,可以通过变通的方法来实现,比如在MySQL中,执行完了一个插入SQL后,接着执行SELECT LAST_INSERT_ID()语句,就可以获取到自增主键。5)DBUtils的性能和JDBC性能是一样,测试过程中没发现性能损失,拥有了很高性能的同时,而不失JDBC的灵活性。6)对于JavaBean的成员类型定义,有一条原则那就是:尽可能使用包装类型,而不要使用基本类型。三、API介绍1、mons.dbutils包DbUtils:一个为简化JDBC操作的小类库AbstractQueryRunner:是抽象类,QueryRunner和AsyncQueryRunner类的基类。AsyncQueryRunner:可插拔的方式执行SQL查询,处理结果集。是线程安全的类。BaseResultSetHandler:把结果集转换成其它对象的扩展。BeanProcessor:BeanProcessor匹配列名到Bean属性名,并转换结果集列到Bean对象的属性中。Dbutils:一个JDBC辅助工具集合。GenerousBeanProcessor:提供了从数据库列名到JavaBean属性之间的智能匹配。ProxyFactory:产生JDBC接口的代理实现。QueryLoader:属性文件加载器,主要用于加载属性文件中的SQL到内存中。QueryRunner:使用可插拔的策略执行SQL查询并处理结果集。ResultSetHandler:把ResultSet转换为别的对象的工具。ResultSetIterator:包装结果集为一个迭代器。RowProcessor:将ResultSet行转换为别的对象的工具。2、mons.dbutils.handlers包AbstractKeyedHandler:KeyedHandler的抽象类。AbstractListHandler:简化ResultSetHandler类开发的抽象类,把结果集转换成List。ArrayHandler:把结果集中的第一行数据转成对象数组。ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。BeanMapHandler:实现了Bean返回Map集合。结果集所有的行都会转换成Bean,并根据指定的Key存储到Map中。ColumnListHandler:将结果集中某一列的数据存放到List中。KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。3、mons.dbutils.wrappe
您可能关注的文档
最近下载
- (高清版)B-T 2099.1-2021 家用和类似用途插头插座 第1部分:通用要求.pdf VIP
- 劳动创造美好生活中职生劳动教育全套教学课件.pptx
- 人工智能在高中美术课堂中的应用.pdf
- 西藏自治区日喀则市高一入学数学分班考试真题含答案.docx VIP
- 2025黑龙江省建设投资集团有限公司面向系统内部及社会招聘12人笔试备考试题及答案解析.docx VIP
- 医院医德医风考评公示制度医德医风考评制度及考评实施细则.docx
- 晶体工程资料.pdf VIP
- 成都川师锦华小升初入学分班考试英语考试试题及答案.docx VIP
- 第六章晶体工程.ppt VIP
- ASUS华硕ROG SWIFT PG65UQ中文说明书.pdf VIP
文档评论(0)