• 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)数据保存慢的原因,继续研究
     
    《待续》
  • 相关阅读:
    redis
    linux systemd
    分布式高可用架构演进
    c++ 多线程 信号量简单使用
    JAVA上传文件到FTP上
    JAVA字符串去掉html代码
    jQuery判断复选框是否勾选
    SpringBoot全局异常处理
    SpringBoot统一日志打印
    JAVA加解密之DES
  • 原文地址:https://www.cnblogs.com/masb/p/2853854.html
Copyright © 2020-2023  润新知