zoukankan      html  css  js  c++  java
  • 文档

    框架概述

    DAO 框架内置支持 JDBC、MyBatis 和 Hibernate 数据库访问方法,并对数据库访问机
    制进行了抽象,为不同的数据库访问方法提供一致的使用接口。DAO 框架主要由以下三种组件构成:

    Session  Manager

    实现 SessionMgr 接口,负责创建和维护数据库连接对象(Session)。
    nsg通过配置的方式在应用程序启动过程中创建 Session Manager。DAO 框架为 JDBC、
    MyBatis 和 Hibernate 实现了相应的 Session Manager:

    • JDBC    :org.nsg.dao.jdbc.JdbcSessionMgr
                          :org.nsg.dao.jdbc.DruidSessionMgr
    • MyBatis    :org.nsg.dao.mybatis.MybatisSessionMgr
    • Hibernate  :org.nsg.dao.hbn.HibernateSessionMgr
    • DAO Facade:org.nsg.dao.AbstractFacade
      DAO  Facade 派生于抽象类 AbstractFacade,是所有用户 DAO 的基类


    DAO  Facade 并实现应用程序的数据库访问方法。应用程序不会直接创建 DAO  Facade 或用
    户 DAO 对象实例,而是通过 FacadeProxy 创建其代理对象。DAO 框架为 JDBC、MyBatis
    和 Hibernate 实现了各自的 DAO Facade:
      JDBC    :org.nsg.dao.jdbc.JdbcFacade
      MyBatis    :org.nsg.dao.mybatis.MybatisFacade
      Hibernate  :org.nsg.dao.hbn.HibernateFacade

    DAO Facade Proxy 负责创建 DAO 代理对象,该代理对象隐含事务处理和连接管理等操
    作。因此, 应用程序应该使用由 DAO Facade Proxy 创建的代理对象访问数据库,而不该直
    接创建 DAO 对象。
    当执行 DAO  代理对象的数据库访问方法时,如果发生错误会抛出 DAOException
    (org.nsg.dao.DAOException),它是 Runtime  Exception,如果有需要,程序可以在代码
    中捕捉这个异常。
    在应用程序中使用 DAO 框架一般需要执行以下四个步骤:


    1.  在应用程序配置文件(默认:app-config.xml)中配置 Session Manager
    2.  根据应用程序的需要创建 DAO 类,并实现数据库访问方法
    3.  通过 DAO Facade Proxy 获取 DAO 代理对象
    4.  通过 DAO 代理对象执行数据库访问方法



    Session Manager初始化


    Session Manager 实现了 SessionMgr 接口,SessionMgr 接口中的两个方法:
      void initialize(String ... args)
      void unInitialize()
    分别用于初始化和销毁 Session  Manager。如果在应用程序配置文件中配置了 Session
    Manager,则会在应用程序启动时创建该 Session Manager 的实例并调用它的 initialize(String ...
    args)  方法;在应用程序关闭前调用它的 unInitialize()  方法。对于不同类型的 Session
    Manager, initialize(String ... args)  方法的参数个数和意义不确定,由 Session Manager 自行解
    析,下面分别阐述 nsg内置的 Session Manager 的初始化参数含义:

      JDBC  Session  Manager : 、 JdbcSessionMgr 、DruidSessionMgr

    (其他 JDBC Session Manager :   JdbcSessionMgr、 DruidSessionMgr
    的参数说明请参考 API 文档)

    DAO Facade


    DAO Facade 派生于抽象类 AbstractFacade。作为用户 DAO 的基类, nsg内置的 DAO
    Facade 都提供了很多非常有用的底层数据库访问方法,用户 DAO 使用这些方法执行数据库
    访问能大大减少编程的代码量,这些方法的使用说明请参考 API 文档。
      JDBC DAO Facade:org.nsg.dao.jdbc.JdbcFacade
      call(…)            :执行存储过程
      query(…)          :执行查询操作
      update(…)          :执行更新操作
      updateAndGenerateKeys(…)    :执行更新操作,并返回被影响行的主键
      updateBatch(…)        :执行批量更新操作
      MyBatis DAO Facade:org.nsg.dao.jdbc.MybatisFacade
      selectXxx(…)          :执行查询操作
      insert(…)          :执行插入操作
      update(…)          :执行更新操作
      delete(…)          :执行删除操作
      clearCache(…)        :清空 Session 缓存
      getMapper(…)        :获取 VO Mapper
      changeSessionExecutorTypeToXxx(…)  :更改 Session 的 Executor Type
      Hibernate DAO Facade:org.nsg.dao.jdbc.HibernateFacade
      hqlQueryX(…)      :执行 HQL 查询操作
      hqlUpdateX(…)      :执行 HQL 更新操作
      namedQueryX (…)      :执行命名查询操作
      namedUpdateX (…)    :执行命名更新操作
      qbcQuery(…)        :执行 QBC 查询操作
      sqlQueryX(…)      :执行 SQL 查询操作
      sqlUpdate(…)        :执行 SQL 更新操作
      save(…)          :保存 VO
      update(…)        :更新 VO
      saveOrUpdate (…)     :保存或更新 VO
      delete (…)        :删除 VO
      get(…)          :获取 VO
      load(…)          :加载 VO
      clear(…)         :清空 Session 缓存
      flush(…)          :刷新 Session 缓存

  • 相关阅读:
    iOS 代码让手机震动一下
    iOS开发 --制作圆形的头像(UIImage)
    JAVA基本数据类型和引用数据类型的区别
    jquery基础
    JS基础
    JAVA异常详解
    单例模式详解及java常用类
    JAVA基础之字符串和面向对象
    我的第一篇博客 初识动画,飞机行小动画
    GCD系列:调度组(dispatch_group)
  • 原文地址:https://www.cnblogs.com/Alandre/p/4015637.html
Copyright © 2011-2022 走看看