Happy3w

NC持久化框架JDBC FrameWork-3

2017.02.17
说明:此篇小编收集整理,非原作者。 第三章 常用的API的使用 1. PersistenceManager 该类主要解决复杂数据的查询(联查)和复用数据库连接的方式,该类能在一个复杂业务中复用一个连接,需要最后在业务结束的时候手动的关闭连接 ,使用该类的优点是在做复杂业务的时候复用连接能够提高性能,缺点是需要人为关闭连接,如果在开发过程中忘记关闭了连接会导致连接泄露的系统问题。该类建议的使用方法如下:
PersistenceManager persistence=null;
try {
	persistence= PersistenceManager.getInstance(数据源)
	JdbcSession session= persistence. getJdbcSession();
//数据调用1
Session.delete()
//数据库调用2
Session.insert()
//数据库调用3
Session. excuteQuery ()
//或其它方法调用传入Session
Object o=Call method(Session);
} catch (DAOException e){
    Throws new xxBusinessRunTimeException(“”);
}finaly{
	Persistence. Release();
}
PersistenceManager包括supervo及obj maping的查询和持久化, PersistenceManager具体提供的方法和功能请参考PersistenceManager的JavaDoc. 2. IVOPersistence持久化机制接口 该接口提供基本的单表操作,分为支持SuperVO和普通Java Bean,对于通用持久化或泛化持久化,无任何业务逻辑的insert、update、delete操作强烈建议前台使用该接口,需要业务逻辑的持久化操作必须使用具体的名称来完成业务方法的Service声明。IVOPersistence具体提供的方法和功能请参考IVOPersistence的JavaDoc. 调用机制
private IVOPersistence getVOPersistence() throws BusinessException {
if (iVOPersistence == null)
try {
	iVOPersistence = (IVOPersistence) NCLocator.getInstance().lookup(
						IVOPersistence.class.getName());
} catch (ComponentException e) {
		throw new SysInitException("IUAPQueryBS not found!");
	}
return iVOPersistence;
}

3.	IUAPQueryBS接口
数据库查询接口,该接口提供基本的单表查询操作,支持SuperVO和其它任何含有映射原数据的javaBean的实现机制, IUAPQueryBS具体提供的方法和功能请参考IUAPQueryBS的JavaDoc。
调用机制
private IUAPQueryBS getUAPQuery() throws BusinessException {
if (iIUAPQueryBS == null)
try {
	iIUAPQueryBS = (IUAPQueryBS) NCLocator.getInstance().lookup(
						IUAPQueryBS.class.getName());
} catch (ComponentException e) {
		throw new SysInitException("IUAPQueryBS not found!");
	}
return iIUAPQueryBS;
}
注意:IVOPersistence和IUAPQueryBS提供了需要远程调用的简单的数据库持久化操作,他们都通过Nclocator方式来查找调用,如果是后台的数据库操作推荐使用BaseDao或者PersistenceManager 。 4. 结果集的控制 在NC持久层中为了防止执行大查询后返回结果集合过多导致系统内存溢出系统默认设置了最大返回结果集行数是10万行,如果如要返回更多行数或者不限制返回行数,需要做如下设置: 在SuperDMO中设置返回行数
SuperDMO superDmo=new SuperDMO();
superDmo. setMaxRows(行数);
如果rows= -1表示不限制返回行数
在BaseDAO中设置返回行数
BaseDAO baseDao=new BaseDAO();
BaseDAO. setMaxRows(行数);
如果rows= -1表示不限制返回行数
在ResultsetProcessor中设置返回行数
BaseProcessor processor=new ArrayListProcessor();
Processor. setMaxRows(行数);
在结果集中设置返回行数
CrossDBResultset resultset=( CrossDBResultset)rs;
Resultset.setMaxRows(行数);