- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对象持久化
第1章 对象持久化
什么是持久化?简单地说,持久化就是把数据同步保存到数据库或某些存储设备中。在软件的分层体系结构中,持久化层是与数据库打交道的逻辑层。在数据库中对数据的增加、删除、查找和修改操作由持久化层来处理。最常见的操作是在ASP或JSP的页面代码中混杂了很多连接数据库、操作数据库的语句,这实际上是把持久层和展现层耦合到了一起,使得代码的编写和维护都很困难,程序结构非常不清晰。对于大型应用,这个问题尤为突出,因此,对系统结构进行分层,是解决这种耦合问题的前提保障。
Java程序员对使用JDBC进行数据库编程不会感到陌生。实际上,使用JDBC对数据库中的数据进行增加、删除、修改的操作就是持久化的过程。然而,直接使用JDBC作为持久层有一些难以解决的问题。
1.1 JDBC面临的一些问题
常规访问数据库的方法是直接使用JDBC。而在实际的应用中它有一些缺点,详细的解释见下面内容所述。
1.1.1 JDBC简介
JDBC是一种用于执行SQL语句的Java API(JDBC本身是个商标名而不是一个缩写字,然而,JDBC常被认为是代表“Java数据库连接(Java Database Connectivity)”),它由一组用Java编程语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,使他们能够用纯Java API来编写数据库应用程序。
有了JDBC,向各种关系数据库发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase 数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,为访问Informix 数据库又写另一个程序等。只需用JDBC API写一个程序即可,它可向相应数据库发送SQL语句。而且,使用Java编程语言编写的应用程序无需去考虑要为不同的平台编写不同的应用程序。将Java和JDBC结合起来将使程序员只需写一遍程序就可让它在任何平台上运行。
简单地说,JDBC可做3件事:
与数据库建立连接。
发送SQL语句。
处理结果。
1.1.2 繁琐的代码问题
看一个插入对象的基本例子,这里增加一个用户对象。
public void addAccount(final Account account) throws DAOException,
AccountAlreadyExistException {
final Connection conn = getConnection();
PreparedStatement pstmt=con.prepareStatement(insert into account values(?,?,?,?,?,?,?,?,?));
pstmt.setString(1, account.getUserName());
pstmt.setInt(2, account.getPassWord());
pstmt.setString(3, account.getSex());
pstmt.setString(4, account.getQq());
pstmt.setString(5, account.getMsn());
pstmt.setString(6, account.getTel());
pstmt.setString(7, account.getAddress());
pstmt.setString(8, account.getHeight());
pstmt.setString(9, account.getEnglevel());
pstmt.execute();
conn.Close();
}
这个操作很简单,就是把增加一个Account对象的对象逻辑转化为一个insert操作,即实现最简单的Account对象到数据库表account的映射。上面是由开发人员手工编写JDBC代码来实现。如果Account对象的属性有上百个,就要写上百行的pstmt.setString()语句,很容易出错。如果有另一个对象Person,也要写相近的代码来实现增加一个Person的操作。
类似的例子和代码在大量的项目中都存在。从1996年JDBC出现到目前已经9年,大量的项目开发还在重复地编写这样的代码来实现这些每个项目都需要的基本操作。开发数据访问层的工作量(开发和测试)极大,对开发人员的要求也很高。最不幸的是,在大量的项目开发中都需要重复这种繁复的数据访问层的开发,从而导致大量的人力、物力和财力都浪费在这种人力密集型的数据访问层重复开发中,而数据库操作也恰恰是项目开发中最容易出错和消耗大量时间的部分。如果在项目需要面对不同
您可能关注的文档
最近下载
- 幼儿园木工课程.pptx VIP
- 风力发电项目PC施工总包合同.pdf VIP
- 2017年山东省青岛市城阳七年级英语下册 Unit 1-2 复习练习题(无答案)(新版)人教新目标版.doc VIP
- 禽类屠宰与分割车间设计规范sbj15-2022.docx VIP
- 浙大二院急诊科进修汇报.pptx VIP
- 全国计算机等级考试二级 MS Office高级应用ppt全套教学课件完整版电子教案.docx VIP
- 中国重症心血管疾病患者临床营养评估和管理专家共识解读PPT课件.pptx VIP
- 中国重症心血管疾病患者临床营养评估和管理专家共识解读PPT课件.pptx VIP
- 瑞普德R8060M,R8080M用户手册调试参数设置资料.pdf
- 输变电工程标准工艺(变电工程土建分册)2022版.pdf VIP
文档评论(0)