05DBUtils(数据库操作框架).doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05DBUtils(数据库操作框架)

DBUtils(数据库操作框架) 1、框架分类 1)ORM框架:Object Relation Mapping JPA:Java Persistent API,ORM标准(借鉴了Hibernate) Hibernate:非常流行(有两套,一套原有的,一套实现了JPA标准) MyBatis:2010年开始。之前叫做iBatis 2)JDBC封装框架 DBUtils Spring JDBC Template 2、编写自己的JDBC框架 1)了解:数据库元数据的获取(做框架用的),包括DataBaseMetaData、ParameterMetaData、ResultSetMetaData。 【注:本文使用的DBCPUtil工具类见《数据库连接池(DataSource)》一文】 ① DataBaseMetaData @Test public void test1() throws SQLException{ Connection conn = DBCPUtil.getConnection(); DatabaseMetaData dmd = conn.getMetaData(); //获取数据库名称、版本 String name = dmd.getDatabaseProductName(); String version = dmd.getDatabaseProductVersion(); System.out.println(name+ +version); //获取数据库默认的隔离级别 int isolation = dmd.getDefaultTransactionIsolation(); System.out.println(isolation); } ② ParameterMetaData @Test public void test2() throws SQLException{ Connection conn = DBCPUtil.getConnection(); PreparedStatement stmt = conn.prepareStatement(????); ParameterMetaData pmd = stmt.getParameterMetaData(); //获取SQL语句中参数的个数,其实就是?的个数 int count = pmd.getParameterCount(); System.out.println(count); } ③ ResultSetMetaData @Test public void test3() throws SQLException{ Connection conn = DBCPUtil.getConnection(); PreparedStatement stmt = conn.prepareStatement(select * from account); ResultSet rs = stmt.executeQuery(); ResultSetMetaData rsmd = rs.getMetaData(); //获取结果集的列数 int count = rsmd.getColumnCount(); System.out.println(count); for(int i = 0;i count;i ++){ String fieldName = rsmd.getColumnName(i+1); //获取结果集每一列的类型和列名 int type = rsmd.getColumnType(i+1); System.out.println(type + +fieldName); } } 2)编写JDBC框架(策略设计模式):DBAssist 框架介绍:针对DAO层需要频繁的进行update和query操作,本框架对这一过程进行了封装,对外提供了update、query方法直接调用。在执行query操作时,需要额外提供一个ResultSetHandler实例,该实例表示对查询结果集的处理策略。框架同时提供了该接口的两种实现: BeanHandler:当查询结果集只有一条记录时,将结果集封装到JavaBean对象中返回。 BeanListHandler:当查询结果集有多条记录时,将结果集封装到List对象中返回。 用户也可以实现ResultSetHandler接口,定义自己的封装策略,相关API见下图: ① 核心类:org.flyne.dbassist.DBAssist public class DBAssist { //由用户传入数据源 private DataSour

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档