认证认可框架数据访问用户指南.doc_第1页
认证认可框架数据访问用户指南.doc_第2页
认证认可框架数据访问用户指南.doc_第3页
认证认可框架数据访问用户指南.doc_第4页
认证认可框架数据访问用户指南.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络 如有侵权 请联系网站删除 精品文档 认证认可框架认证认可框架 数据访问对象数据访问对象 北京中认网信息技术有限公司北京中认网信息技术有限公司 此文档收集于网络 如有侵权 请联系网站删除 精品文档 修订历史记录修订历史记录 日期日期版本版本说明说明作者作者 此文档收集于网络 如有侵权 请联系网站删除 精品文档 目录目录 1简介简介 4 2数据访问接口数据访问接口 4 2 1IDAO 统一数据访问接口 4 2 2PAGING 分页对象接口 5 2 3PAGINGIMPL 5 3IBATIS 配置文件统一配置配置文件统一配置 6 4数据访问对象模式数据访问对象模式 6 4 1传统数据访问对象模式 6 4 1 1实现dao类 7 4 1 2数据访问方法与SqlMap 对应关系 7 4 1 3创建sql map映射文件 7 4 1 4Spring配置文件 8 4 1 5分页实现 8 4 2统一处理数据访问对象模式 8 4 2 1数据访问方法与SqlMap 对应关系 9 4 2 2Spring配置文件 11 4 2 3定制功能映射及执行规则 11 4 2 4分页实现 12 4 2 5例子 14 此文档收集于网络 如有侵权 请联系网站删除 精品文档 1简介简介 数据访问对象提供对数据资源的访问 框架实现了 ibatis 数据访问对象 提供了两 种数据访问对象的模式 传统数据访问对象模式及统一处理数据访问对象模式 传统 数据访问对象模式提供了抽象数据访问对象类 编程人员需要创建 dao 继承该抽象类 实现自己个性的方法 统一处理数据访问对象模式提供了数据访问支持类 开发人员 不需要创建 dao 类 只需要在配置文件中引用数据访问支持类即可 2数据数据访问访问接口接口 2 1IDAO 统一数据访问接口统一数据访问接口 com caf orm IDAO public interface IDAO public void save final T o throws DataIntegrityViolationException DAOException 保存数据实体 public T getEntity throws DAOException public T getEntity final Object o throws DAOException 取得数据实体 public List getAll throws DAOException 取得所有数据实体 public void update final T o throws DataIntegrityViolationException DAOException 更新数据实体 public void remove final Object o throws DAOException 删除数据实体 public void removeAll throws DAOException 删除所有数据实体 public boolean isExist final Object o throws DAOException 判断数据视图是否存在 public List getList throws DAOException public List getList final Object o throws DAOException 取得实体列表 public Paging getPage final Paging o throws DAOException 此文档收集于网络 如有侵权 请联系网站删除 精品文档 取得分页对象 public Object getMax throws DAOException public Object getMax final Object o throws DAOException 取得最大数据实体 public Object getMin throws DAOException public Object getMin final Object o throws DAOException 取得最小数据实体 public int getCount throws DAOException public int getCount final Object o throws DAOException 取得计数 2 2Paging 分页对象接口分页对象接口 com caf orm Paging public interface Paging public Collection getData 取得分页对象中的数据 public void setData Collection data 设置分页对象中的数据 public Object getParam 取得分页查询参数 public void setParam Object param 设置分页查询参数 public int getCurrPage 设置记录初始位置 public void setStartIndex int currPage 设置记录初始位置 public void setStartIndex int currPage 取得记录初始位置 public int getStartIndex 设置当前页码 public int getPageSize 取得总页数 public void setPageSize int pageSize 设置总页数 public int getTotalSize 取得总记录数 public void setTotalSize int totalSize 设置总记录数 public int getSizePerPage 取得每页记录数 public void setSizePerPage int sizePerPage 设置每页记录数 此文档收集于网络 如有侵权 请联系网站删除 精品文档 2 3PagingImpl Paging 接口默认实现 3IBATIS 配置文件统一配置配置文件统一配置 IBATIS 是允许配置多个 sqlMapConfig 配置文件 而每一个 sqlMapConfig 配置文件 中又可以引用多个 sqlMap 文件 框架对 sqlMapConfig 的配置进行了管理 开发人员可通过配置灵活指定 开发人员只需在配置文件注入一个 list 对象 并指明 list 的 parent 为 sqlMapConfigLocation 框架在启动时就会自动加载自定义的 config 文件到 ibatis 的 sqlmapconfig 中 而对于每个 sqlmapconfig 文件中引用的 sqlmap 配置文件 则完全由开发人员自行定义 注入ibatis sqlMapConfig配置文件 classpath com caf code sqlMapConfigCode xml classpath com caf code sqlMapConfigCode1 xml com caf code sqlMapConfigCode xml 此文档收集于网络 如有侵权 请联系网站删除 精品文档 4数据访问对象模式数据访问对象模式 框架在数据访问层提供两种数据访问对象的模式 4 1传统数据访问对象模式传统数据访问对象模式 为每个数据实体填写数据访问对象 为每个数据实体填写数据访问对象 传统的数据访问对象模式是指为每一个数据实体重建一个数据访问对象接口和一个实现类 通过调用数据访问对象接口中的方法进行数据的访问操作 框架中已经对基本的功能进行的封装 使用时只需基础框架中的 AbstractIBatisDAO 即可 传统数据访问对象模式编码实现需要以下几个步骤 1 创建 DAO 类继承 AbstractIBatisDAO 如 SampleDAO extends AbstractIBatisDAO AbstractIBatisDAO 实现 IDAO 接口的方法 如果这些方法满足要求 则编程人员 不用编写代码 只需让自己 DAO 类继承 AbstractIBatisDAO 编写相应的 sql map 映射文件 如果不够 则需要自己实现个别的方法 建议一个表 视图实现一个 DAO 类 2 创建 sql map 映射文件 编写用于执行的 sql 语句 3 创建 DAO 所需 Spring 配置文件 自己实现的 dao 类 public class SimpleCodeDAOIBatisImpl extends AbstractIBatisDAO implements SimpleCodeDAO 如果 idao 接口提供的方法不满足要求 可以实现自己的方法 4 1 1IDAO 方法与方法与 SqlMap 中中 StatementId 对应关系对应关系 框架已经将 Idao 中的方法与 sqlmap 文件中的建立了一种绑定的关系 即 Statement id 命名空间名称命名空间名称 DAO 方法名方法名 数据实体名称数据实体名称 命名空间是 Ibatis 中的概念 值为 Spring 注入时的 DAO 参数 namespace 方法名就是执行 dao 的方法 如 dao save 那么方法名称就是 save 实体名称就是 DAO 继承时写的泛型类名称 SimpleCodeDAOIBatisImpl extends AbstractIBatisDAO implements SimpleCodeDAO 其中 SimpleCode 就是实体名 此文档收集于网络 如有侵权 请联系网站删除 精品文档 当调用 SimpleCodeDAO 中的 save 方法是 那么就会去调用 sqlmap 文件中的定义名称为 saveS impleCode 的 sql 语句 4 1 2创建创建 sql map 映射文件映射文件 Spring 支持配置多个 ibatis 配置文件 建议每个模块创建自己的 ibatis 配置文件 每个 ibatis sql map 文件命名空间定义为实体名称 Sql map 映射文件 命名空间 save方法 当调用 idao save obj 时执行 get方法 idao get obj 时执行 getAll方法 idao getAll obj 时执行 此文档收集于网络 如有侵权 请联系网站删除 精品文档 4 1 3Spring 配置文件配置文件 配置dao 4 1 4分页实现分页实现 在此模式下 getPage 方法是通过隐含调用 getCount 和 getList 两个方法 getCount 对应的 Statement Id getPage entityname Total 记录总数 getList 对应的 Statement Id getPage entityname 取得分页数据 4 2统一处理数据访问对象模式统一处理数据访问对象模式 框架提供了统一处理数据访问对象 编程人员不需要继承抽象类 只需配置相关的 属性即可实现数据访问操作功能 统一数据访问对象除了提供 2 1 章提供的功能外 又额外提供了一个方法 public Object execute Object o throws DAOException 第一个参数为执行功能的名称 第二个为传入的参数 执行功能和调用的 statement id 有一个对应的关系 通过执行功能找到对应的 statement id 假如没有找到 则假定执行功能名称为 statement id 框架提供了缺省功能 名称和 statement id 的对应关系 编程人员可以增加或替换相应的映射关系 预定义的映射关系 功能名称 statement id getAll getAll getCount getCount getList getList getMax getMax getMin getMin getEntity getEntity getPage getPage isExist exist remove remove 此文档收集于网络 如有侵权 请联系网站删除 精品文档 removeAll removeAll delete delete save save update update 框架在执行 statement id 的时候需要知道调用 sqlmapclienttemplate 相应的方法 queryForObject queryForList insert update delete 等 框架提供了一套缺省映射规则 编程人员遵从 statementid 命名规范就无需配置任何映射规则 编程人员如果觉得不够 可 以配置相应的映射规则 statement id 命名规范 必须以以下名称开头 例如获取申请信息所有数据 命名为 getAllApplyInfo statement id Sql执行方法 getAll queryForList getCount queryForObject getList queryForList getMax queryForObject getMin queryForObject getEntity queryForObject isExist queryForObject remove delete delete delete save insert update update 4 2 1IDAO 方法与方法与 StatementId 对应关系对应关系 与传统数据访问模式类似 统一处理方式中也存在着 dao 方法与具体执行 sql 语句的映射问题 Sqlmap文件中sql语句名称与功能名称的配置关系 具体的执行的statement Id与namespace entityname 关系如下 statementId namespace func entityName 可选 Sqlmap 配置文件中 命名空间名称 功能名称 实体名称 可选 Sql语句的名称 例如 dao getEntity paramenters 或者 dao execute getEntity paramenters 系统会按照上图中的statementId 查找sqlmaps 文件中对应的statement Id语句去执行 当执行getEntity empno 时 此文档收集于网络 如有侵权 请联系网站删除 精品文档 1 getEntity 作为功能名称在系统之前预定义的 功能 方法 Map中查找 找出执行方 法 如例子中dao的 功能 方法 映射采用默认的方式 找到的方法是 queryForObject 2 getEntity 作为功能名称在系统之前预定义的 功能 SQL执行标识 Map中查找 找 出映射中在配置文件中SQL语句的名称 如例子中dao的 功能 SQL执行标识 映射采用默认的方式 找到的statement Id标识是 getEntity 3 如果配置文件中为 dao 配置了 entityName 那么执行的 sql 标识就加上 entityName 如果 entityName 配置的是 Employee 那么最后的 statement id 就是 getEntityEmployee Spring dao 配置文件 即 getEntity entityName sqlMap文件 4 如果配置nameSpace 那么执行时就会去找到namespace 相符合的 sqlmap文件中的 getEntityEmployee 去执行 Spring 配置文件 那么 sql 配置文件就要指定 sqlMap 因为ibaits是有命名空间感念的 相同的命名空间下不能存在相同的语句映射名称 此文档收集于网络 如有侵权 请联系网站删除 精品文档 请参见 ibatis的相应说明 4 2 2Spring 配置文件配置文件 配置使用dao 4 2 3定制功能映射及执行规则定制功能映射及执行规则 自定义功能 update1 指明执行的 sqlmap 中的statementId 为 update123 指明通过 update方法 执行的 sqlmap 中的statementId 为 update123 此文档收集于网络 如有侵权 请联系网站删除 精品文档 4 2 4分页实现分页实现 在统一处理数据访问对象模式中 有两种分页实现可以选择 一种是完全依赖编写的 SQL 进行普通分页方式 一种是系统自动修改普通查询 SQL 进行的相对简单分页方式 我们知道数据库级的分页 SQL 与普通查询 SQL 还是有区别的 以 DB2 为例 1 select id name from employee where name like zhang 普通的查询语句 2 SELECT t0 FROM SELECT t1 rownumber over rownum FROM select id name from employee where name like zhang as t1 as t0 WHERE t0 rownum 10 分页 SQL 语句 用到 DB2 内置的函数 rownumber over 如果选用第一种普通方式 我们在自己的 SQLMAP 配置文件中写的分页语句就要写 成上例中下面的那条语句的形式 and t0 rownum 如果选用第二种简单方式 我们在自己的 SQLMAP 配置文件中写的分页语句就可以 直接使用上例中上面的那种普通查询语句 而由系统自动生成分页语句 默认使用简单分页方式简单分页方式 此文档收集于网络 如有侵权 请联系网站删除 精品文档 4 2 4 1普通分页方式普通分页方式 实现类为 com caf orm ibatis IB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论