- 浏览: 21682 次
- 性别:
- 来自: 浙江
文章分类
最新评论
Abator——Ibatis代码生成工具
前面讲过Spring+Ibatis集成开发实例课程,但对于iBatis这些配置文件有没有一种能够自动生成相关代码呢?答案是肯定的,有。在iBatis官方网站中介绍了一款生成iBatis代码工具——Abator!一个IBatis自动生成工具,他可以帮助你生成大量的DAO,DTO和sqlmap。
下面就给大家详细介绍一下如何使用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.3,jdk1.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. 填写driverClass(jdbc驱动,例如MySql的就是com.mysql.jdbc.Driver)
2. 填写connectionURL(连接字符串,例如MySql的就是jdbc:mysql://localhost:3306/ibatis)
3. 填写classPathEntry的location(jdbc驱动jar包的位置,例如:lib/mysql-connector-java-3.1.5-gamma-bin.jar)
4. 填写javaModelGenerator,生成的DTO(java 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}">
<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>
<!-- 自动生成iBatis相关代码和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>
然后运行“genfiles”此任务即可看到生成的java代码以及sqlMap的配置文件(此方法推荐)。
三、 可以使用java类来自动生成,类代码内容如下:
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();
}
}
}
最后运行此类即可看到生成的文件!
文章出处:http://www.diybl.com/course/3_program/java/javashl/2007126/90733.html
前面讲过Spring+Ibatis集成开发实例课程,但对于iBatis这些配置文件有没有一种能够自动生成相关代码呢?答案是肯定的,有。在iBatis官方网站中介绍了一款生成iBatis代码工具——Abator!一个IBatis自动生成工具,他可以帮助你生成大量的DAO,DTO和sqlmap。
下面就给大家详细介绍一下如何使用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.3,jdk1.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. 填写driverClass(jdbc驱动,例如MySql的就是com.mysql.jdbc.Driver)
2. 填写connectionURL(连接字符串,例如MySql的就是jdbc:mysql://localhost:3306/ibatis)
3. 填写classPathEntry的location(jdbc驱动jar包的位置,例如:lib/mysql-connector-java-3.1.5-gamma-bin.jar)
4. 填写javaModelGenerator,生成的DTO(java 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}">
<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>
<!-- 自动生成iBatis相关代码和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>
然后运行“genfiles”此任务即可看到生成的java代码以及sqlMap的配置文件(此方法推荐)。
三、 可以使用java类来自动生成,类代码内容如下:
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();
}
}
}
最后运行此类即可看到生成的文件!
文章出处:http://www.diybl.com/course/3_program/java/javashl/2007126/90733.html
相关推荐
在Eclipse这个强大的Java集成开发环境中,开发基于iBatis的数据库访问层时,我们可以借助插件工具来提高效率。Abator就是这样一个工具,它是一个自动化代码生成器,能够自动生成iBatis所需的SQL映射文件、DAO接口、...
使用`Ibatis`和`Abator`进行开发,可以避免手动编写大量的重复性代码,提高开发效率,同时保持代码的清晰和可维护性。在实际项目中,`Ibatis`可以很好地与Spring框架集成,提供事务管理和其他高级功能。 总结来说,...
Abator 插件是针对 iBatis 框架的一个自动化工具,它的主要功能是帮助开发者自动生成与 iBatis 相关的各种代码,从而提高开发效率,减少手动编写重复代码的工作量。iBatis 是一个优秀的 Java 数据库访问框架,它提供...
《Ibatis应用实例》 iBatis是一个轻量级的持久层框架,它作为O/R Mapping解决方案,与Hibernate等其他框架相比,其最大的优势在于简洁易用。对于不需要复杂功能的项目,iBatis是理想的选择,它允许开发者自由地编写...
本文将围绕“IBATIS开发使用实例”这一主题,深入解析复杂SQL查询的应用,尤其是如何利用SQL进行多表关联、条件筛选以及聚合函数的使用。 ### IBATIS简介 IBATIS,现被称为MyBatis,是一种优秀的持久层框架,它...
接着,"iBatis实例"部分提供了实际操作的代码示例,这是理论知识的实践应用。通过这些实例,你可以学习到如何配置数据源、如何创建Mapper接口和XML配置文件,以及如何处理查询结果。例如,你可能看到如何使用iBatis...
下面我们将分步骤解析如何利用Abator来创建Ibatis DAO框架。 首先,确保你已经正确地安装并配置了Abator。Abator通常是一个Maven插件,因此需要在你的Maven项目中添加Abator的相关依赖。在`pom.xml`文件中,你需要...
#### 二、Spring宠物店项目中的Ibatis应用 Spring宠物店是一个非常典型的展示了 Spring 和 Ibatis 整合的应用案例。在这个项目中,我们可以通过一系列步骤来了解如何使用 Ibatis 来进行数据库操作。 ##### 2.1 ...
《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...
本教程将深入探讨IBatis的开发实例,帮助开发者更好地理解和运用这个强大的工具。 **IBatis简介** IBatis(现更名为MyBatis)是由Clinton Begin创建的一款Java ORM(对象关系映射)框架,它允许开发者编写SQL语句而...
- **定义**:Abator是一款针对iBATIS框架的专业代码生成工具,它能够显著减少开发人员在使用iBATIS时需要手动编写的代码量,尤其是针对数据访问对象(DAO)、数据传输对象(DTO)以及SQL映射文件等的生成。...
《Ibatis代码自动生成工具—Abator的应用详解》 Ibatis作为一款轻量级的Java持久层框架,因其灵活的SQL映射机制深受开发者喜爱。然而在实际开发中,面对大量的数据库表,手动编写对应的Java实体类、Mapper接口以及...
通过深入学习和实践"ibatistest2"这个实例,开发者不仅可以掌握Ibatis的基本使用,还能理解其在实际项目中的应用方式,为日后的开发工作打下坚实的基础。记住,理论与实践相结合,才能真正掌握一门技术,希望...
在IT行业中,数据库管理和持久化框架的使用是至关重要的,特别是在Web开发中。这个"ibatis + mysql 实例"提供了一个具体的案例,演示了如何结合这两个技术进行基本的数据操作,如增、删、改、查。Ibatis是一个轻量级...
本文将深入探讨如何在C# .NET环境中使用IBatis进行数据库操作,这对于初学者来说是一份宝贵的资源。 **一、IBatis .NET简介** IBatis(现在称为MyBatis)是一个轻量级的持久层框架,它允许开发者将SQL语句直接嵌入...
iBatis 是一款著名的开源持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,提供了灵活的...通过学习这个实例,开发者可以更好地理解和掌握iBatis在实际项目中的应用,提高数据访问层的开发效率和代码质量。
通过这个实例,你可以学习到如何在Java应用中集成iBatis,以及如何使用它来执行基本的CRUD操作。随着对iBatis的深入理解和实践,你会发现它在处理复杂SQL和对象关系映射方面具有很高的灵活性和可扩展性。
由于没有具体的压缩包文件内容,无法提供具体的代码示例,但是根据提供的信息,我们可以了解到这个实例可能涵盖了 iBATIS 的基本使用、配置以及在实际开发中的应用。如果你想要进一步学习 iBATIS,建议查看所提供的...
在这个"iBATIS 开发实例以及PPT文档"中,我们可以深入学习和理解iBATIS的基本用法和核心概念。 首先,iBATIS的核心是SQL Maps,这是一种XML配置文件,其中包含了SQL查询和结果集映射。通过这些映射,iBATIS可以将...
struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+...