1. 程式人生 > >Ibatis 對映檔案自動生成器

Ibatis 對映檔案自動生成器

使用了一個多月的iBatis,大體覺得挺不錯.速度靈活性都還可以.比起以前的完全手動程式設計,節約了大量的時間.
但是,隨著使用次數的增多,一個問題很快就暴露出來,那就是對映檔案寫起來太煩了,都是重複單調的打字.

於是就寫了一個小程式,來做這個對映的工作.

先說一下原理:iBatis中的對映是很有規律的,最重要的是做好資料庫欄位到javabean屬性的對映,而其他的地方改動很少. 這就好辦了,我們採用模板,把變的部分抽取出來,把不變的部分直接寫到模板中.

在程式中提取javabean類的屬性,進行分析,做一個javabean屬性和資料庫欄位的一一對應關係.然後把這種關係填充到模板中.

我們來看下例子:

publicclass PlanExe {
    
privateint id;

    
privatelong planId;

    
private String title;

    
private String body;

    
private String createTime;

    
private String lastModifyTime;

    
public String getBody() {
        
return body;
    }

...
}

這是一個普通的javabean

我們再看一下轉化後的結果:

<?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>

這裡我只是做了select,insert,update三種簡單模型,但是有了這個模型,接下來的工作就容易多了,改幾下就可以了.

如果你有好注意,歡迎和我討論.

 這裡好像不能發附件,我發到csdn的資源下載中去