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)数据保存慢的原因,继续研究
     
    《待续》
  • 相关阅读:
    增删改查
    全局配置文件mappers_sql映射注册
    全局配置文件<typeAliases>别名配置
    接口式编程小结
    Mybatis_接口编程
    Mybatis_HelloWord
    xml中标签含义
    Spring中Bean的基本概念
    ACM 第十四天
    ACM 第十三天
  • 原文地址:https://www.cnblogs.com/masb/p/2853854.html
Copyright © 2011-2022 走看看