ORMapping学习

由于项目上对单据的性能格外要求,所以特别看了看ORMapping这一层的实现,主要是为了自己分析问题。
 
ORMapping的学习(一):整体认知
1、ORMapping说明
(1)包的命名:
dao.ormapping
dao.ormapping.impl
dao.ormapping.lazyload--惰性加载处理
 
dao.ormapping_ex--从功能来看,ex意味extend,是对ormapping功能的扩展
        .ast
        .ast.expr
        .parser
        .runtime
        .runtime.dataquery
        .runtime.objectquery
        .runtime.objectquery.impl
        .service
 
(2)主接口定义
IDataAccessObject
 
IORMappingDAO
 
ORMappingDAO           BillORMappingDAO
 
 
2、API设计
public IObjectValue getValue(IObjectPK pk) throws DataAccessException {
getValue(pk,selector);
}
public IObjectValue getValue(IObjectPK pk, SelectorItemCollection selector){}
public IObjectValue getValue(IObjectPK pk, SelectorItemCollection selector,boolean isBaseOnSelector) throws DataAccessException{}
public IObjectValue getValue(IObjectPK pk, SelectorItemCollection selector,SorterItemCollection sorter) throws DataAccessException{} 
public IObjectValue getValue(IObjectPK pk, SelectorItemCollection selector,SorterItemCollection sorter,boolean isBaseOnSelector) throws DataAccessException{}
 
private IObjectValue innerGetValue(EntityViewInfo view, boolean isBaseOnSelector){}
 
 
参考以上方法,对API的设计,可遵循如上的格式:
(1)代码的高度重用
(2)可维护性高
(3)层次分明
 
 
3、主要接口定义
 
工厂类
ObjectCUDFactory
 
ObjectCreator -- 负责数据的创建
ObjectRemover -- 负责数据的删除
ObjectUpdater -- 负责数据的更新
 
ORMAppingDAO中主要是调用如上的方法进行数据的操作
 
 
4、常用工具方法
 
com.kingdee.bos.dao.ormapping.ORMappingDAOUtils
com.kingdee.bos.dao.ormapping.Utils
 
 
 
5、事务处理框架
初步来看是使用了springframework的实现
 
 
6、猜想:
(1)数据更新时慢的原因,可能是在更新之前需要查询一次
(2)数据保存慢的原因,继续研究
 
《待续》

转载于:https://www.cnblogs.com/masb/archive/2013/01/09/2853854.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值