• 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)数据保存慢的原因,继续研究
     
    《待续》
  • 相关阅读:
    C嵌入汇编
    App 运营 推广相关
    POJ 3904 Sky Code
    数组的复制与动态扩展算法
    另类病毒的自删除方法
    oracle触发器中增删改查本表
    POJ 2773 Happy 2006 数学题
    Android手机便携式wifi的使用及无线数据传输(主要针对XP系统)
    Find the minimum线段树成段更新
    使用visual c++ 2005编译64位可执行文件
  • 原文地址:https://www.cnblogs.com/masb/p/2853854.html
Copyright © 2020-2023  润新知