施用Abator工具来自动生成iBatis代码

使用Abator工具来自动生成iBatis代码

1.安装

  1.1.下载安装 

       首先,下载Abator插件,其Abator下载地址为: http://people.apache.org/builds/ibatis/alpha/AbatorForEclipse1.0.0.zip

       其次,将插件使用link方式将其安装到Eclipse中,也可以进行Find And Install来本地安装.

  2.1.Eclipse在线安装

       2.1.1. 要求eclipse3.3,jdk1.4以上

       2.1.2.eclipse菜单栏 --> help --> Software Updates --> Find And Install... ,

               在弹出的对话框中选择 “Search for new features to install” 然后点击 “next”,

               在对话框中点击按钮 New Remort Site... ,Name:Ibatis_Abator(任意),URL:http://ibatis.apache.org/tools/abator

               点击Finish,安装插件,然后重新启动eclipse.

               安装完成后,File-->new菜单下出现"Abator for iBATIS Configuration File"选项.

2.使用

 2.1.新建一个java工程.

   2.2.在eclipse菜单栏中新建一个abator 配置文件: File -->new--> Abator for iBATIS Configuration File

   2.3.打开abator生成的配置文件(abatorConfig.xml)并修改

 2.4.右键菜单选择Generate iBATIS Artifacts,生成文件


配置文件说明:

view plaincopy to clipboardprint?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE abatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN"  
  3. "http://ibatis.apache.org/dtd/abator-config_1_0.dtd">  
  4.   
  5. <abatorConfiguration>  
  6. <abatorContext generatorSet="???">    <!-- TODO: Add Database Connection Information -->  
  7.     <jdbcConnection driverClass="???"  
  8.         connectionURL="???"  
  9.         userId="???"  
  10.         password="???">  
  11.       <classPathEntry location="???" />  
  12.     </jdbcConnection>  
  13.   
  14.     <javaModelGenerator targetPackage="???" targetProject="???" />  
  15.     <sqlMapGenerator targetPackage="???" targetProject="???" />  
  16.     <daoGenerator type="IBATIS" targetPackage="???" targetProject="???" />  
  17.   
  18.     <table schema="???" tableName="???">  
  19.   
  20.       <generatedKey column="???" sqlStatement="???" identity="???">  
  21.       <columnOverride column="???" property="???" />  
  22.   
  23.     </table>  
  24.   
  25. </abatorContext>  
  26. </abatorConfiguration>  
  27.   
  28. 我们需要做的是替换一些???:  
  29. 1. 填写 driverClass(jdbc驱动,例如MySql的就是com.mysql.jdbc.Driver)  
  30. 2. 填写connectionURL(连接字符串,例如MySql的就是 jdbc:mysql://localhost:3306/ibatis)  
  31. 3. 填 写classPathEntry的location(jdbc驱动jar包的位置,例如:lib/mysql-connector-java- 3.1.5-gamma-bin.jar)  
  32. 4. 填写 javaModelGenerator,生成的DTO(java model 类)  
  33.     targetPackage: 目标包的位置,如 com.etong.test.daomain  
  34.     targetProject: 目标源文件夹位置,如:..\test\src\main\java\  
  35. 5. 填 写sqlMapGenerator ,生成的xml sqlmap的相关配置  
  36.     targetPackage: 目标位置,如 .表示放在该目标源文件夹的根目录下.  
  37.     targetProject: 目标源文件夹位置,如:..\test\src\main\resources\  
  38. 6. 填 写daoGenerator ,生成的DAO的相关配置  
  39.     type:生 成的dao实现的类型,如果你使用spring的话写SPRING,否则写IBATIS  
  40.     targetPackage: 目标位置,如 com.etong.test.dao  
  41.     targetProject: 目标源文件夹位置,如:..\test\src\main\java\  
  42. 7. 配置相 关数据库的表  
  43.     schema:数据库schema (如果是 oracle就是填写数据库的用户名,可以不填)  
  44.     tableName:表 名  
  45.   
  46.    generatedKey:来告诉abator那些列需要自动返回值(当插入的时候可以返回插入记录的主键,这对有外键的数据库极其有 用)identity默认为false  
  47.     columnOverride: 重写的列,列名重写.  
  48.   
  49. 【注 意事项】:  
  50.      1.Abator工具生成的DAO实现中,引用 SqlMap Statements时默认使用namespace,即namespace.statements;  
  51.      2.Statements ID以abatorgenerated_开头时,默认为是自动生成的 elements,下次会重新生成(覆盖)该elements;  
  52.      3.在  jdbcConnection 中设置要mapping的数据库的jdbc连接classPathEntry 是你的jdbc driver类路径  
  53.      4.javaModelGenerator,sqlMapGenerator,daoGenerator 分 别设置 java dataObject、sql mapping文件和DAO 接口、实现类的生成位置:targetPackage 目标 包,targetProject:eclipse项目  
  54.      5.daoGenerator 中 可以设置属性  type: ibatis 或 spring 指定生成的dao实现类是使用 com.ibatis.dao.client.template.SqlMapDaoTemplate还是 org.springframework.orm.ibatis.support.SqlMapClientDaoSupport  
  55.      6.table 中 tableName 指定要处理的表名  
  56.   可以有多个table  
  57.     7.table中可以包含子元素 generatedKey: 使Insert方法可以返回值--由指定的column mapping  
  58.    8.generatedKey中的sqlStatement属性可以是获取sequence的SQL,也可以是获 取自增值的SQL  
  59.     比如:Oracle 的 select theSequence.nextVal from dual  
  60.      SQLServer的 SELECT @@IDENTITY as column_name  
<?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 generatorSet="???"> <!-- 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="???"> <generatedKey column="???" sqlStatement="???" identity="???"> <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:表名   generatedKey:来告诉abator那些列需要自动返回值(当插入的时候可以返回插入记录的主键,这对有外键的数据库极其有 用)identity默认为false columnOverride:重写的列,列名重写. 【注意事项】: 1.Abator工具生成的DAO实现中,引用SqlMap Statements时默认使用namespace,即namespace.statements; 2.Statements ID以abatorgenerated_开头时,默认为是自动生成的elements,下次会重新生成(覆盖)该elements; 3.在 jdbcConnection 中设置要mapping的数据库的jdbc连接classPathEntry 是你的jdbc driver类路径 4.javaModelGenerator,sqlMapGenerator,daoGenerator 分别设置 java dataObject、sql mapping文件和DAO 接口、实现类的生成位置:targetPackage 目标包,targetProject:eclipse项目 5.daoGenerator 中可以设置属性  type: ibatis 或 spring 指定生成的dao实现类是使用com.ibatis.dao.client.template.SqlMapDaoTemplate还是 org.springframework.orm.ibatis.support.SqlMapClientDaoSupport 6.table 中 tableName 指定要处理的表名   可以有多个table   7.table中可以包含子元素 generatedKey: 使Insert方法可以返回值--由指定的column mapping   8.generatedKey中的sqlStatement属性可以是获取sequence的SQL,也可以是获取自增值的SQL    比如:Oracle的 select theSequence.nextVal from dual    SQLServer的 SELECT @@IDENTITY as column_name

 


例:

<?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 generatorSet="Java5">
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:eric/eric@192.168.1.138:1521:PDORCL"
userId="root"
password="root" >
<classPathEntry location="D:\workspace\Ibatis_Abator\lib\ojdbc14.jar" />
</jdbcConnection>
<javaModelGenerator targetPackage="com.bean" targetProject="Ibatis_Abator" />
<sqlMapGenerator targetPackage="com.bean" targetProject="Ibatis_Abator" />
<daoGenerator targetPackage="com.bean" targetProject="Ibatis_Abator" type="SPRING" />
<table schema="" tableName="T_AFN_0C_F1" ></table>
<table schema="" tableName="T_AFN_0C_F100" ></table>
</abatorContext>
</abatorConfiguration>