网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

如何使用Abator利器来开发ibatis应用实例!

http://www.diybl.com/ 2007-12-6  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

 Abator——Ibatis代码生成工具

 

 

前面讲过Spring+Ibatis集成开发实例课程,但对于iBatis这些配置文件有没有一种能够自动生成相关代码呢?答案是肯定的,有。在iBatis官方网站中介绍了一款生成iBatis代码工具——Abator!一个IBatis自动生成工具,他可以帮助你生成大量的DAODTOsqlmap 

 

下面就给大家详细介绍一下如何使用Abator工具来自动生成iBatis代码:

 

首先下载Abator插件,可以使用link方式将其安装到Eclipse,也可以进行Find And Install来安装;

 

如果使用link方式进行安装,其Abator下载地址为: http://people.apache.org/builds/ibatis/alpha/AbatorForEclipse1.0.0.zip

(关于link方式如何安装不在本文范畴,要参见:http://blog.csdn.net/apicescn/archive/2005/03/19/323478.aspx).

 

采用Find And Install安装Eclipse插件
1.
要求eclipse3.3jdk1.4以上
2.
eclipse上安装abator插件
    eclipse
菜单栏 --> help --> Software Updates --> Find And Install...
   
在弹出的对话框中选择 “Search for new features to install” 然后点击 “next”
   
在对话框中点击按钮 New Remort Site...  在弹出的对话框中的URL输入框中填写 http://ibatis.apache.org/tools/abator Name输入框就随便写abator就行了。
   
点击Finish,安装插件,然后重新启动eclipse

 

下面将介绍如何使用该插件完成自动生成ibatis代码的功能:
1.
新建一个java工程(如何建立java工程以及相关基础知识不在本范畴).
2.
eclipse菜单栏中新建一个 abator 配置文件   File -->  Abator  for  iBatis Configration File

 

好的,我们完成了创建配置文件,下面打开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.apache.org/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.
填写driverClassjdbc驱动,例如MySql的就是com.mysql.jdbc.Driver
2.
填写connectionURL(连接字符串,例如MySql的就是jdbc:mysql://localhost:3306/ibatis
3.
填写classPathEntrylocationjdbc驱动jar包的位置,例如:lib/mysql-connector-java-3.1.5-gamma-bin.jar
4.
填写javaModelGenerator,生成的DTOjava model 类)
    targetPackage
:目标包的位置,如 com.etong.test.daomain
    targetProject
:目标源文件夹位置,如:..\test\src\main\java\
5. 填写sqlMapGenerator ,生成的xml sqlmap的相关配置
    targetPackage
:目标位置,如 .表示放在该目标源文件夹的根目录下.
    targetProject
:目标源文件夹位置,如:..\test\src\main\resources\
6.
填写daoGenerator ,生成的DAO的相关配置
    type
:生成的dao实现的类型,如果你使用spring的话写SPRING,否则写IBATIS
    targetPackage
:目标位置,如 com.etong.test.dao
    targetProject
:目标源文件夹位置,如:..\test\src\main\java\
7. 配置相关数据库的表
    schema
:数据库schema (如果是oracle就是填写数据库的用户名)
    tableName
:表名
  columnOverride:表的字段名.

 修改后的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.apache.org/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>

    配置完这个xml文件以后,下面就可以开始自动自成iBatis的相关文件了,有三种方法可供选择,具体做法如下:

一、       在配置文件上点击右键,选择 “Generate iBatis Artifacts”,即可生成所有的java文件以及sqlmap配置文件等等,但这种方式在Eclipse中需要先运行abator这个程序,所以不太好用,不建议使用。

二、       使用Ant来构建,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报告文件夹 -->
    
<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来限定
        导入的类库,如果不限定即可使用通配符**/*来替代!        
        
-->
        
<fileset dir="${lib.dir}">
            
<include name="**/*.jar" />
        
</fileset>
        
<pathelement path="${classes.dir}" />
    
</path>

    
<!-- 初始化开始任务 -->

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

    
<!-- 清除任务 -->
    
<target name="clean">
        
<delete dir="${classes.dir}" />
    
</target>

    
<!-- 清除所有任务 -->
    
<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 记录构建时间              
         ================================= 
-->
    
<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报告,这个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}">