基于ibatis的通用持久层对象

基于ibatis的通用持久层对象

ID:23196628

大小:233.00 KB

页数:12页

时间:2018-11-05

基于ibatis的通用持久层对象_第1页
基于ibatis的通用持久层对象_第2页
基于ibatis的通用持久层对象_第3页
基于ibatis的通用持久层对象_第4页
基于ibatis的通用持久层对象_第5页
资源描述:

《基于ibatis的通用持久层对象》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ibatis介绍  使用ibatis提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate实现ORM而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL语句,而ibatis则要求开发者编写具体的SQL语句。相对Hibernate等“全自动”ORM机制而言,ibatis以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM实现的一种有益补充,ibatis的出现显得别具意义。  版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接  作者:fel

2、lowArrayArray  原文:http://www.matrix.org.cn/resource/article/44/44410_iBatis.html  关键字:iBatis;ORM  一、为什么要设计“通用”的东西  在大多数时候,我们所需要的持久层对象(PO)大多都是一张表(or视图)对应一个类。按照Hibernate的思想,就是抛开数据库的束缚,把焦点集中到业务对象中。而很多自动化工具的确让做到了通过表结构生成对应的对象,or通过对象自动生成表。对于小项12总机(Tel):+86757-88361111Http://www.ake.com.cn目来说,一

3、切都是简单的;对于有规范设计的项目来说,PO的设计也不是一件困难的工作。但是对于那些业务变动频繁的项目来说,改动PO可能成了一件很繁重的工作。试想一下,假设某个表需要增加一个字段:对于Hibernate(oriBaits),首先要改配置文件,然后PO,然后DAO(也许没有),然后业务逻辑,然后JO,然后界面,etc,贯通了全部层次。  恩,写程序的都不喜欢这些重复劳动,但是做企业级应用的谁不是每天在这些工作中打滚。  研究过iBaits以后,发现有些通用的方法可以解决,就是设计一个通用的持久层对象。  二、基于什么技术  iBatis可以使用Map对象作为PO,Hibe

4、rnate好像也有相关的功能(我没有细看,不确定)。  iBatis执行一条指令的过程大概是这样的:    其中圈圈1、2、3描述了iBatis最重要的三个对象。  圈圈1:statement简单来说就是存储sql语句的配置信息,一个最简单的statement:12总机(Tel):+86757-88361111Http://www.ake.com.cn      insertintoPRODUCT(PRD_ID,PRD_DESCRIPTION)values(1,“ShihTzu”)      其中id属性是这个statement的唯一标识,全局不能重复。  以上当然是最

5、简单的了,没有参数也不需要返回值,但实际情况下基本都需要传入参数,下面就是介绍参数。  圈圈2:参数对象主要分两种类型:parameterMap、parameterClass和InlineParameter。  其中parameterMap是配置文件定义传入参数表,如下:          insertintoPRODUCT(PRD_ID,PRD_DESCRIPTION)values(?,?);      而parameterClass是传入参数对象(JavaBean),如下:      insertintoPRODUCTvalues(#id#,#description

6、#,#price#)    12总机(Tel):+86757-88361111Http://www.ake.com.cn  InlineParameter则是强化版的parameterClass,如下:      insertintoPRODUCT(PRD_ID,PRD_DESCRIPTION)  values(#id:NUMERIC:-ArrayArrayArrayArrayArrayArray#,#description:VARCHAR:NO_ENTRY#);      其中第一种方法看着就复杂,实际是为了兼容老版本留下来的,所以parameterClass是我们最

7、常用的方法。官方文档对parameterClass介绍很详细,因为这是核心之一,具体请自己查阅。有3个特性说明一下:  a.parameterClass对象可以传入一个Map对象(orMap子类)。本来如果是传入JavaBean,程序会通过get/set来分析取得参数;而Map是key-value结构的,那程序会直接通过key来分析取参数。  b.看以下语句:      insertintoPRODUCTvalues(#id#,#description#,#price#,#classify.id#)    12总机(Tel):+86757

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。