自动生成ibatis映射文件
创始人
2024-04-15 05:51:10
0

使用了一个多月的iBatis,大体觉得挺不错.速度灵活性都还可以.比起以前的完全手动编程,节约了大量的时间.但是,随着使用次数的增多,一个问题很快就暴露出来,那就是iBatis映射文件写起来太烦了,都是重复单调的打字.

于是就写了一个小程序,来做这个iBatis映射文件的工作.

先说一下原理:iBatis中的映射是很有规律的,最重要的是做好数据库字段到javabean属性的映射,而其他的地方改动很少. 这就好办了,我们采用模板,把变的部分抽取出来,把不变的部分直接写到模板中.

在程序中提取javabean类的属性,进行分析,做一个javabean属性和数据库字段的一一对应关系.然后把这种关系填充到模板中.

我们来看下例子:

  1. public class PlanExe ...{  
  2.     private int id;  
  3.  
  4.     private long planId;  
  5.  
  6.     private String title;  
  7.  
  8.     private String body;  
  9.  
  10.     private String createTime;  
  11.  
  12.     private String lastModifyTime;  
  13.  
  14.     public String getBody() ...{  
  15.         return body;  
  16.     }  
  17. ...  

这是一个普通的javabean

我们再看一下iBatis映射文件转化后的结果:

  1. ﹤?xml version="1.0" encoding="UTF-8" ?﹥  
  2.  
  3. ﹤!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"  
  4.     "http://ibatis.apache.org/dtd/sql-map-2.dtd"﹥  
  5.  
  6. ﹤sqlMap namespace="PlanExe"﹥  
  7.     ﹤typeAlias alias="PlanExe" type="zhmt.keeper.model.PlanExe" /﹥  
  8.  
  9.     ﹤select id="PlanExe.getPlanExeById" 
  10.         resultClass="PlanExe" parameterClass="int"﹥  
  11.         SELECT   
  12.             id AS id,  
  13.     plan_id AS planId,  
  14.     title AS title,  
  15.     body AS body,  
  16.     create_time AS createTime,  
  17.     last_modify_time AS lastModifyTime   
  18.         FROM plan_exe   
  19.         WHERE id=#id#;  
  20.     ﹤/select﹥  
  21.  
  22.     ﹤insert id="PlanExe.insert" parameterClass="PlanExe"﹥  
  23.         INSERT INTO plan_exe   
  24.             (id,plan_id,title,body,create_time,last_modify_time)   
  25.         VALUES   
  26.             (#id#,#planId#,#title#,#body#,#createTime#,#lastModifyTime#) ;  
  27.     ﹤/insert﹥  
  28.  
  29.     ﹤update id="PlanExe.update" parameterClass="PlanExe"﹥  
  30.         UPDATE plan_exe SET   
  31.             id=#id#,  
  32.     plan_id=#planId#,  
  33.     title=#title#,  
  34.     body=#body#,  
  35.     create_time=#createTime#,  
  36.     last_modify_time=#lastModifyTime#   
  37.         WHERE id = #id# ;  
  38.     ﹤/update﹥  
  39. ﹤/sqlMap﹥ 

这里我只是做了select,insert,update三种简单模型,但是有了这个模型,接下来的工作就容易多了,改几下就可以了.

 

【编辑推荐】

  1. ibatis自动代码生成工具Abator在Eclipse中的使用
  2. 对于选择Hibernate还是iBatis的看法
  3. Hibernate与IBatis的优缺点及可行性分析
  4. 基于iBatis的通用持久层对象
  5. Spring与iBATIS的集成
  6. MyEclipse与Eclipse介绍浅析

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...