- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 种子法规复习重点.doc
- 四川省绵阳市2016年秋示范学校教师教学改革成果质量监测八年级试题物理试卷[附答案].doc
- 高考化学硫酸例题和解答.doc
- 第十二章推理与证明算法复数.doc
- 高考语文语言文字运用专题一提升训练Word版含答案.doc
- 高考生物选择题专项.doc
- 高考语病句分析.doc
- 高考语文复习方法指导_-.doc
- 高职教育国际化论文.docx
- 高考题荟萃正确运用常见的修辞方法.doc
- 山东省威海市2023-2024学年高一年级下册期末考试语文试题及答案.pdf
- 2024-2025学年绥化市高二数学上学期开学考试卷(附答案解析).pdf
- 2024届贵州省贵阳某中学联考高考模拟预测地理试题(含答案解析).pdf
- 2024年公务员考试行测常识判断复习讲义.pdf
- 2024年广东学法考试试题附答案(考场一).pdf
- 2024年人教版八年级物理复习讲义:功 专项训练【五大题型】原卷版.pdf
- 江苏省泰州市高港区等2地2023-2024学年九年级上学期期中语文试题.pdf
- 酒店概论及酒店管理培训考试题库.pdf
- 湖北省旅游类《酒店服务》技能高考历年考试试题库(含答案).pdf
- 泰安市2025年中考一模考试物理试题(A)含解析.pdf
文档评论(0)