zoukankan      html  css  js  c++  java
  • 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)数据保存慢的原因,继续研究
     
    《待续》
  • 相关阅读:
    ZOJ2913Bus Pass(BFS+set)
    HDU1242 Rescue(BFS+优先队列)
    转(havel 算法)
    ZOJ3761(并查集+树的遍历)
    ZOJ3578(Matrix)
    HDU1505
    ZOJ3574(归并排序求逆数对)
    VUE-脚手架搭建
    VUE脚手架搭建
    VUE-node.js
  • 原文地址:https://www.cnblogs.com/masb/p/2853854.html
Copyright © 2011-2022 走看看