- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
持久层技术红皮书
NC-UAP 5.0
用友NC-UAP
2012-03-17
目 录
第一章 前言 1
1. NC数据访问层特点 1
第二章 JDBC FrameWork 3
1. JdbcSession的创建: 3
2. 数据访问异常的处理 4
3. 结果集合的处理 4
4. 更新的实现 6
4.1 无参数更新数据 6
4.2 带参数更新数据 7
4.3 批量带参数更新数据 8
4.4 批量无参数更新 8
5. JdbcSession中特殊参数类型 9
第三章 对象的持久化 12
1. 普通Java Bean的持久化 12
1.1 对象定义 12
1.2 构造数据映射对象 13
1.3 对象读取 15
1.4 对象写入 15
1.5 对象更新 16
1.6 对象删除 16
2. SuperVO的持久化 16
第四章 常用的API的使用 18
1. PersistenceManager 18
2. IVOPersistence持久化机制接口 19
3. IUAPQueryBS接口 19
4. 结果集的控制 20
附录 21
1. 常见问题解析 21
前言
在NC的开发中可以直接通过JDBC编程来访问数据库。JDBC可以说是JAVA访问关系数据库的最原始、最直接的方法。这种方式的优点是运行效率高,缺点是在Java程序代码中嵌入大量SQL语句,冗余是不可避免的,开发人员常常发现自己在一次又一次地编写相同的普通代码,如获得连接、准备语句、循环结果集以及其他一些 JDBC 特定元素,使得项目难以维护。特别是当涉及到非常多的关系数据表、需要在多个不同类型的关系数据库系统中使用时,通过在程序中使用JDBC开发实施起来更加困难。
所以引入对象-关系映射是提高开发效率、提升软件产品的可维护、扩展性的现实需要。实践表明,在基于数据处理为主的企业级应程序开发中,通过引入对象-关系映射中间件,可以节省与对象持久化有关的差不多40%的编程工作量,同时提升软件产品可维护及易扩展性,提升软件产品质量。因此,在NC的业务开发中必要通过引入对象-关系映射系统中间件,实现数据库的快速开发。目前NC可以通过JDBC开发了单独的持久化层,把数据库访问操作封装起来,提供简洁的API,供业务层统一调用,实现了自己的ORM系统。
通过NC数据库访问框架可以把内存中的对象持久化到数据库、把数据库中的关系数据加载到内存中,同时保证了系统频繁地访问数据库的性能,降低访问数据库的频率。
NC数据访问层特点
具有透明性 业务对象在不知道数据访问实现的具体细节情况下,可以使用数据源。由于实现细节隐藏在数据访问层的内部,所以访问是透明的。
易于迁移 数据访问层使应用程序很容易迁移到其他数据库实现。业务对象不了解底层的数据实现,所以迁移仅仅涉及到修改数据访问层。
减少业务对象中代码复杂性 因为数据访问层管理着所有的数据访问复杂性,所以它可以简化业务对象和使用数据访问层的其他数据客户端的代码。数据访问层,含有许多与实现相关的代码(例如SQL语句)。这样给开发人员带来了更高的效率、更好的可维护性、提高了代码的可读性等一系列好处。
易于维护和管理把所有的数据访问集中在单独的层上,由于所有的数据访问操作现在都委托给数据访问层,集中化管理数据访问。这种集中化可以使应用程序易于维护和管理。
JDBC FrameWork
NC系统与数据库进行交互需要反复地调用SQL语句、连接管理、事务生命周期、结果处理和异常处理。这些操作都是很常见的;不过这个重复的使用并不是必要的。解决与一个兼容JDBC的数据库的重复交互问题。
灵活
简洁
高的容错性
异常的统一处理
利用JdbcSession执行一个SQL,几乎不需要代码。你所需要的全部仅仅是一个和一个JdbcSession。 一旦你得到了它们,你将可以使用JdbcSession提供的大量方便的方法JdbcSession的创建:
PersistenceManager sessionManager= PersistenceManager. getInstance ();
try {
JdbcSession session = sessionManager. getJdbcSession ();//开始jdbc会话
相关业务操作
} catch (DbException e) {
}
finally {
sessionManager. release ();//需要关闭会话
}
数据访问异常的处理
DbException是一个抽象异常类, 它被用来处理SQLException和我们的数据访问异常之间的转换。DbException的实现并对每种数据库的SQLErrorCode进行了处
文档评论(0)