久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何使用Abator利器來開發(fā)ibatis應(yīng)用實(shí)例\

 WindySky 2009-03-20
前面講過Spring+Ibatis集成開發(fā)實(shí)例課程,,但對于iBatis這些配置文件有沒有一種能夠自動(dòng)生成相關(guān)代碼呢?答案是肯定的,,有,。在iBatis官方網(wǎng)站中介紹了一款生成iBatis代碼工具——Abator!一個(gè)IBatis自動(dòng)生成工具,他可以幫助你生成大量的DAO,,DTO和sqlmap,。
 
下面就給大家詳細(xì)介紹一下如何使用Abator工具來自動(dòng)生成iBatis代碼:
 
首先下載Abator插件,可以使用link方式將其安裝到Eclipse中,也可以進(jìn)行Find And Install來安裝;
 
如果使用link方式進(jìn)行安裝,,其Abator下載地址為: http://people./builds/ibatis/alpha/AbatorForEclipse1.0.0.zip
(關(guān)于link方式如何安裝不在本文范疇,,要參見:http://blog.csdn.net/apicescn/archive/2005/03/19/323478.aspx).
 
采用Find And Install安裝Eclipse插件
1. 要求eclipse3.3,jdk1.4以上
2. 在eclipse上安裝abator插件
    eclipse菜單欄 --> help --> Software Updates --> Find And Install...
    在彈出的對話框中選擇 “Search for new features to install” 然后點(diǎn)擊 “next”
    在對話框中點(diǎn)擊按鈕 New Remort Site...  在彈出的對話框中的URL輸入框中填寫 http://ibatis./tools/abator ,,Name輸入框就隨便寫abator就行了,。
    點(diǎn)擊Finish,安裝插件,,然后重新啟動(dòng)eclipse
 
下面將介紹如何使用該插件完成自動(dòng)生成ibatis代碼的功能:
1. 新建一個(gè)java工程(如何建立java工程以及相關(guān)基礎(chǔ)知識不在本范疇).
2. 在eclipse菜單欄中新建一個(gè) abator 配置文件   File -->  Abator  for  iBatis Configration File
 
好的,,我們完成了創(chuàng)建配置文件,下面打開abator生成的配置文件:
 
 
Abator配置文件(abatorConfig.xml)
 
 
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE abatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN"
  "http://ibatis./dtd/abator-config_1_0.dtd">
<abatorConfiguration>
  <abatorContext>    <!-- TODO: Add Database Connection Information -->
    <jdbcConnection driverClass="???"
        connectionURL="???"
        userId="???"
        password="???">
      <classPathEntry location="???" />
    </jdbcConnection>
    <javaModelGenerator targetPackage="???" targetProject="???" />
    <sqlMapGenerator targetPackage="???" targetProject="???" />
    <daoGenerator type="IBATIS" targetPackage="???" targetProject="???" />
    <table schema="???" tableName="???">
      <columnOverride column="???" property="???" />
    </table>
  </abatorContext>
</abatorConfiguration>
我們需要做的是替換一些???:
1. 填寫driverClass(jdbc驅(qū)動(dòng),,例如MySql的就是com.mysql.jdbc.Driver)
2. 填寫connectionURL(連接字符串,,例如MySql的就是jdbc:mysql://localhost:3306/ibatis)
3. 填寫classPathEntry的location(jdbc驅(qū)動(dòng)jar包的位置,例如:lib/mysql-connector-java-3.1.5-gamma-bin.jar)
4. 填寫javaModelGenerator,,生成的DTO(java model 類)
    targetPackage:目標(biāo)包的位置,,如 com.etong.test.daomain
    targetProject:目標(biāo)源文件夾位置,如:..\test\src\main\java\
5. 填寫sqlMapGenerator ,,生成的xml sqlmap的相關(guān)配置
    targetPackage:目標(biāo)位置,,如 .表示放在該目標(biāo)源文件夾的根目錄下.
    targetProject:目標(biāo)源文件夾位置,如:..\test\src\main\resources\
6. 填寫daoGenerator ,,生成的DAO的相關(guān)配置
    type:生成的dao實(shí)現(xiàn)的類型,,如果你使用spring的話寫SPRING,,否則寫IBATIS
    targetPackage:目標(biāo)位置,如 com.etong.test.dao
    targetProject:目標(biāo)源文件夾位置,,如:..\test\src\main\java\
7. 配置相關(guān)數(shù)據(jù)庫的表
    schema:數(shù)據(jù)庫schema (如果是oracle就是填寫數(shù)據(jù)庫的用戶名)
    tableName:表名
  columnOverride:表的字段名.
 修改后的abatorConfig.xml配置文件內(nèi)容如下:
 
 
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE abatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN"
  "http://ibatis./dtd/abator-config_1_0.dtd">
<abatorConfiguration>
    <abatorContext>
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/ibatis" userId="Allen"
            password="Allen">
            <classPathEntry
                location="lib/mysql-connector-java-3.1.5-gamma-bin.jar" />
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <javaModelGenerator targetPackage="com.etong.test.daomain"
            targetProject=".. estsrcmainjava">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="."
            targetProject=".. estsrcmain esources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <daoGenerator type="SPRING" targetPackage="com.etong.test.dao"
            targetProject=".. estsrcmainjava">
            <property name="enableSubPackages" value="true" />
        </daoGenerator>
        <table schema="ibatis" tableName="ibatis">       
            <property name="useActualColumnNames" value="true"/>
            <generatedKey column="ID" sqlStatement="ORACLE"
                identity="true" />
            <columnOverride column="id" property="id" />
            <columnOverride column="name" property="name" />
        </table>
    </abatorContext>
</abatorConfiguration>
    配置完這個(gè)xml文件以后,下面就可以開始自動(dòng)自成iBatis的相關(guān)文件了,,有三種方法可供選擇,具體做法如下:
一,、       在配置文件上點(diǎn)擊右鍵,,選擇 “Generate iBatis Artifacts”,即可生成所有的java文件以及sqlmap配置文件等等,,但這種方式在Eclipse中需要先運(yùn)行abator這個(gè)程序,,所以不太好用,不建議使用,。
二,、       使用Ant來構(gòu)建,Ant配置文件如下所示:
 
 
<?xml version="1.0" encoding="GBK"?>
<!--
   作者:Allen
   create date: 2007-08-20
-->
<project name="test" default="compile" basedir=".">
    <!-- properies 源文件夾 -->
    <property name="src.dir" value="src/main/java" />
    <property name="main.resource.dir" value="src/main/resources" />
    <property name="junitsrc.dir" value="src/test/java" />
    <property name="junitsrc.resource.dir" value="src/test/resources" />
    <property name="generated.source.dir" value="${basedir}" />
   
    <!--temporary build directory names 編譯及引用類庫文件夾 -->
    <property name="classes.dir" value="target/classes" />
    <property name="lib.dir" value="lib" />
    <property name="dist.dir" value="dist" />
    <property name="doc.dir" value="doc" />
    <!-- 單元測試和Todo報(bào)告文件夾 -->
    <property name="junit.dir" value="junit" />
    <property name="report.main.dir" value="report/main" />
    <property name="report.test.dir" value="report/test" />
    <!-- 定義classpath -->
    <path id="master-classpath">
        <!--  替換如下方式        <fileset file="${lib.dir}/*.jar" />        -->
        <!--
        也可以寫成如下方式,此方式同上面方式基本一致,這種方式可以通過include來限定
        導(dǎo)入的類庫,如果不限定即可使用通配符**/*來替代!       
        -->
        <fileset dir="${lib.dir}">
            <include name="**/*.jar" />
        </fileset>
        <pathelement path="${classes.dir}" />
    </path>
    <!-- 初始化開始任務(wù) -->
    <target name="init">
        <mkdir dir="${src.dir}" />
        <mkdir dir="${main.resource.dir}" />
        <mkdir dir="${junitsrc.dir}" />
        <mkdir dir="${junitsrc.resource.dir}" />
        <mkdir dir="${classes.dir}" />
        <mkdir dir="${lib.dir}" />
        <mkdir dir="${dist.dir}" />
    </target>
    <!-- 清除任務(wù) -->
    <target name="clean">
        <delete dir="${classes.dir}" />
    </target>
    <!-- 清除所有任務(wù) -->
    <target name="cleanAll" depends="clean">
        <delete dir="${src.dir}" />
        <delete dir="${main.resource.dir}" />
        <delete dir="${junitsrc.dir}" />
        <delete dir="${junitsrc.resource.dir}" />
        <delete dir="${dist.dir}" />
        <delete dir="${doc.dir}" />
        <delete dir="${junit.dir}" />
        <delete dir="${report.main.dir}" />
        <delete dir="${report.test.dir}" />
    </target>
    <!-- =================================
          target: prepart 記錄構(gòu)建時(shí)間             
         ================================= -->
    <target name="prepart" depends="init" description="create the build dirdctories prior to a compile">
        <tstamp>
            <format property="now" pattern="MMMM d yyyy hh:mm aa" />
            <format property="hour_earlier" pattern="MMMM d yyyy hh:mm aa" offset="-1" unit="hour" />
            <format property="minute_later" pattern="MMMM d yyyy hh:mm aa" offset="1" unit="minute" />
        </tstamp>
        <echo>now=${now}</echo>
    </target>
    <!-- 編譯 -->
    <target name="compile" depends="prepart" description="compile the source files">
        <javac srcdir="${src.dir}:${junitsrc.dir}" destdir="${classes.dir}" target="1.4">
            <classpath refid="master-classpath" />
        </javac>
        <copy todir="${classes.dir}">
            <fileset dir="${main.resource.dir}" includes="**/*.properties" />
            <fileset dir="${main.resource.dir}" includes="**/*.xml" />
            <!-- copy the primary program and modules -->
            <fileset dir="${junitsrc.resource.dir}" includes="*.properties" />
            <fileset dir="${junitsrc.resource.dir}" includes="**/*.xml" />
        </copy>
    </target>
    <!-- 生成ToDo報(bào)告,這個(gè)target依賴的庫有
         commons-collections-2.1.jar
         commons-logging.jar
     -->
    <target name="todo" depends="init">
        <mkdir dir="${report.main.dir}" />
        <mkdir dir="${report.test.dir}" />
        <docdoclet destdir="${report.main.dir}">
            <fileset dir="${src.dir}">
                <include name="**/*.java" />
            </fileset>
            <info />
        </docdoclet>
        <docdoclet destdir="${report.test.dir}">
            <fileset dir="${junitsrc.dir}">
                <include name="**/*.java" />
            </fileset>
            <info />
        </docdoclet>
    </target>

    <!-- 單元測試 -->
    <target name="junit" depends="compile" description="run junit test">
        <mkdir dir="${junit.dir}" />
        <junit printsummary="on" haltonfailure="false" failureproperty="tests.failed" showoutput="true">
            <classpath refid="master-classpath" />
            <formatter type="plain" />
            <batchtest todir="${junit.dir}">
                <fileset dir="${classes.dir}">
                    <include name="**/*Test.*" />
                </fileset>
            </batchtest>
        </junit>
        <fail if="tests.failed">
        ***********************************************************
        ****  One or more tests failed!  Check the output ...  ****
        ***********************************************************
        </fail>
    </target>

    <!-- 打包成jar -->
    <target name="jar" depends="compile" description="make .jar file">
        <delete file="${dist.dir}/${ant.project.name}.jar">
        </delete>
        <jar jarfile="${dist.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <exclude name="**/*Test.*" />
            <exclude name="**/Test*.*" />
        </jar>
    </target>
    <target name="rebuild" depends="clean,init,compile,jar">
    </target>
    <!-- 輸出api文檔 -->
    <target name="doc" depends="jar" description="create api doc">
        <mkdir dir="${doc.dir}" />
        <javadoc destdir="${doc.dir}" author="true" version="true" use="true" windowtitle="Test API">
            <packageset dir="${src.dir}" defaultexcludes="yes">
                <include name="*/**" />
            </packageset>
            <doctitle>
                <![CDATA[<h1>Hello, test</h1>]]></doctitle>
        <bottom>
            <![CDATA[<i>All Rights Reserved.</i>]]></bottom>
    <tag name="todo" scope="all" description="To do:" />
</javadoc>
</target>

<!-- 自動(dòng)生成iBatis相關(guān)代碼和sqlMap配置文件-->
<target name="genfiles" description="Generate the files">
<taskdef  name="abator" classname="org.apache.ibatis.abator.ant.AbatorAntTask" classpath="${lib.dir}/abator.jar" />
<abator overwrite="true" configfile="${main.resource.dir}/abatorConfig.xml" verbose="false">
    <propertyset>
        <propertyref name="${generated.source.dir}" />
    </propertyset>
</abator>
</target>

</project>

然后運(yùn)行“genfiles”此任務(wù)即可看到生成的java代碼以及sqlMap的配置文件(此方法推薦),。
三,、       可以使用java類來自動(dòng)生成,類代碼內(nèi)容如下:
 
package com.etong.test.test;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.abator.api.Abator;
import org.apache.ibatis.abator.config.AbatorConfiguration;
import org.apache.ibatis.abator.config.xml.AbatorConfigurationParser;
import org.apache.ibatis.abator.exception.InvalidConfigurationException;
import org.apache.ibatis.abator.exception.XMLParserException;
import org.apache.ibatis.abator.internal.DefaultShellCallback;
public class TestClient ...{
    public static void main(String[] args) ...{
        List warnings = new ArrayList(); // Abator will add Strings to this
                                            // list
        boolean overwrite = true;
        File configFile = new File("abatorConfig.xml");
        AbatorConfigurationParser cp = new AbatorConfigurationParser(warnings);
        AbatorConfiguration config = null;
        try ...{
            config = cp.parseAbatorConfiguration(configFile);
        } catch (IOException e1) ...{
            e1.printStackTrace();
        } catch (XMLParserException e1) ...{
            e1.printStackTrace();
        }
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        Abator abator = new Abator(config, callback, warnings);
        try ...{
            abator.generate(null);
        } catch (InvalidConfigurationException e) ...{
            e.printStackTrace();
        } catch (SQLException e) ...{
            e.printStackTrace();
        } catch (IOException e) ...{
            e.printStackTrace();
        } catch (InterruptedException e) ...{
            e.printStackTrace();
        }
    }
}
最后運(yùn)行此類即可看到生成的文件,!

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多