自动生成ibatis映射文件

开发 后端
本文向您介绍如何自动生成ibatis映射文件,通过具体的示例展示了ibatis映射文件的转换以及javabean属性和数据库字段的对应。

使用了一个多月的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介绍浅析
责任编辑:佚名 来源: DIY部落
相关推荐

2009-07-16 11:21:19

ibatis主键自动生成

2009-07-22 09:25:36

iBATIS映射文件

2009-07-16 09:09:36

ibatis自动代码

2009-07-15 17:58:07

iBATIS 动态映射

2009-07-16 11:35:57

自动生成ibatis改造

2009-07-16 11:40:23

ibatis自动生成abator

2009-07-21 17:31:39

iBATIS一对多映射

2009-07-15 17:31:08

iBATIS Ecli

2009-07-14 17:12:26

ibatis自动代码生

2009-07-21 17:39:50

iBATIS的多对多映

2009-07-20 13:47:08

iBATIS.NET字

2009-07-20 16:41:27

Struts2.0+i

2009-06-29 09:08:12

半自动化ORM实现

2009-09-23 17:34:18

Hibernate映射

2009-07-24 17:54:20

iBatis配置

2009-09-28 14:49:44

Hiberante映射

2009-06-26 10:12:00

Hibernate自动

2014-03-03 10:20:15

IPA分发iOS开发

2010-03-10 12:33:10

Python脚本

2009-09-28 14:54:33

Hibernate映射
点赞
收藏

51CTO技术栈公众号