自动生成ibatis映射文件

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

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

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

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

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

我们来看下例子:

public class PlanExe ...{  
    private int id;  
 
    private long planId;  
 
    private String title;  
 
    private String body;  
 
    private String createTime;  
 
    private String lastModifyTime;  
 
    public String getBody() ...{  
        return body;  
    }  
...  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.

这是一个普通的javabean

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

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

这里我只是做了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-07-24 17:54:20

iBatis配置

2009-09-23 17:34:18

Hibernate映射

2009-09-29 15:58:22

Hibernate映射

2009-09-28 14:54:33

Hibernate映射

2009-09-28 14:49:44

Hiberante映射

2009-07-21 11:12:00

iBATIS配置

2009-07-15 15:47:49

iBATIS是什么
点赞
收藏

51CTO技术栈公众号