Mybatis generator自动生成mybatis配置和类信息

①、命令形式生成代码,详细讲解每一个配置参数。

②、Eclipse利用插件形式生成代码。

-----------------------------------------------------------①①①①①①①①---------------------------------------------------------

 

generator自动生成mybatis的xml配置、model、map等信息:
1、下载mybatis-generator-core-1.3.2.jar包。
       网址:http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DGenerator,下载mybatis-generator-core-1.3.2-bundle.zip,解压
       找到lib下的需要jar包。
2、编写genertor的xml文件,名下:generator.xml

 

Xml代码 

     <?xmlversion="1.0"encoding="UTF-8"?>
  1. <!DOCTYPE generatorConfiguration 
  2.   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  3.   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  4.  
  5. <generatorConfiguration>
  6.   <!-- classPathEntry:数据库的JDBC驱动的jar包地址-->
  7.   <classPathEntrylocation="E:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar"/>
  8. <context id="DB2Tables"targetRuntime="MyBatis3">
  9.   <commentGenerator>
  10.     <!-- 是否去除自动生成的注释 true:是 : false:否 -->
  11.     <propertyname="suppressAllComments"value="true"/>
  12.     <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
  13.   </commentGenerator>
  14.   <jdbcConnectiondriverClass="oracle.jdbc.driver.OracleDriver"
  15.           connectionURL="jdbc:oracle:thin:@198.17.1.1:1521:ORCL"
  16.           userId="unuser"
  17.           password="password">
  18.   </jdbcConnection>
  19.     <!--  默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer  
  20.          true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal  
  21.      -->  
  22.   <javaTypeResolver>
  23.      <propertyname="forceBigDecimals"value="false"/>
  24.   </javaTypeResolver>
  25.   <!-- targetProject:自动生成代码的位置 -->
  26.   <javaModelGeneratortargetPackage="com.soft.model"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">
  27.       <!-- enableSubPackages:是否让schema作为包的后缀 -->     
  28.       <propertyname="enableSubPackages"value="true"/>
  29.     <!-- 从数据库返回的值被清理前后的空格  -->  
  30.       <propertyname="trimStrings"value="true"/>
  31.   </javaModelGenerator>
  32.    
  33.   <sqlMapGeneratortargetPackage="sqlmap"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\conf">
  34.        <propertyname="enableSubPackages"value="false"/>
  35.   </sqlMapGenerator>
  36.    
  37.   <javaClientGeneratortype="XMLMAPPER"targetPackage="com.soft.mapping"targetProject="E:\WebWorkSpace\workspace_js\downAttachdemo\src">
  38.     <propertyname="enableSubPackages"value="true"/>
  39.   </javaClientGenerator>
  40.   <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
  41.   <table schema="untodo"tableName="mocha_t_app"domainObjectName="MochaTodoApp">
  42.    
  43.   </table>
  44. </context>
  45.   
  46. </generatorConfiguration>

 

 

table其他属性:
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
schema即为数据库名, tableName为对应的数据库表, domainObjectName是要生成的实体类,
如果想要mapper配置文件加入sql的where条件查询, 可以将enableCountByExample等设为true,
这样就会生成一个对应domainObjectName的Example类, enableCountByExample等设为false时,
就不会生成对应的Example类了.


如果table里边不配置property,默认字段都生成为类属性。
<ignoreColumn column="FRED" />//忽略字段
<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />//无论字段是什么类型,生成的类属性都是varchar。

3、运行有四种:命令生成(最简单)、Java生成、ant生成、maven生成。这里说两种,有兴趣其余的可以在mybatis官网去学习。

1)、运行-》cmd->java - jar jar包的文件路径  -configfile  generator.xml的文件路径  -overwrite 命令。
如下:

Java代码 
 
java -jar E:\Websoft\mybaits\mybatis-generator-core-1.3.2\lib\mybatis-generator-core-1.3.2.jar -configfile E:\WebWorkSpace\workspace_js\downAttachdemo\src\com\mochasoft\down\generator.xml -overwrite 
 
 
成功时输出:MyBatis Generator finished successfully.
2)、java运行关键代码:

 
Java代码 
   
   List<String> warnings = new ArrayList<String>(); 
  1.   boolean overwrite = true
  2.   File configFile = new File("generatorConfig.xml"); 
  3.   ConfigurationParser cp = new ConfigurationParser(warnings); 
  4.   Configuration config = cp.parseConfiguration(configFile); 
  5.   DefaultShellCallback callback = new DefaultShellCallback(overwrite); 
  6.   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); 
  7.   myBatisGenerator.generate(null); 

 

其实Java运行,细分可以分两种,还有一种可以去官网学习。
 
4、生成代码之后,根据自己的实际项目架构,可以对生成的代码进行适当的修改,如把数据库管理交有spring等等。

 

-----------------------------------------------------------①①①①①①①①---------------------------------------------------------

-----------------------------------------------------------②②②②②②②②---------------------------------------------------------

 

eclipse插件安装地址:http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/

附件有link安装包,link安装方式参考http://maimode.iteye.com/admin/blogs/1164524

MyBatis Generator详细介绍参见:http://code.google.com/p/mybatis/wiki/Generator

安装插件的过程就不说了,安装完后,eclipse中File-》new-》other中会发现多了mybatis选项说明插件安装成功。

 

 

如何使用插件

在任意项目中利用上图中的向导创建generatorConfig.xml文件(名称可修改)然后修改文件内容,主要是设置连接数据的相关参数:

Xml代码
 
<?xmlversion="1.0"encoding="UTF-8"?> 
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 

<generatorConfiguration> 

<contextid="context1"> 

<jdbcConnectiondriverClass="oracle.jdbc.driver.OracleDriver"connectionURL="jdbc:oracle:thin:@192.168.2.21:1521:ORCL"userId="atfm"password="atfm"/> 

 <javaModelGeneratortargetPackage="com.topsci.atfm.persistence.mybatis.model"targetProject="ATFM"/> 

 <sqlMapGeneratortargetPackage="com.topsci.atfm.persistence.mybatis.mapper"targetProject="ATFM"></sqlMapGenerator> 

 <javaClientGeneratortargetPackage="com.topsci.atfm.persistence.mybatis.client"targetProject="ATFM"type="XMLMAPPER"/> 

 <tableschema=""tableName="ATFM_ROUTE_CTRL"></table> 

 <tabletableName="SYN_TRACK_EST"domainObjectName="AtfmTrack"></table> 

</context> 

</generatorConfiguration> 

 

 

 

根据名称应该能才出来大致的意思。

配置好连接数据库及表的信息后就可以利用插件自动生成代码了。

 

点击generatorConfig.xml右键上的选项,如果配置正确,便自动创建相关文件了。

文件主要有三类:

client包,mapper 接口文件

model包,实体bean文件

mapper包,mapper xml文件

如何使用这些自动生成的文件

首先需要将mapper包下的xml文件添加到mybatis的sqlmapper文件中

 

 

们可能会担心一旦重新执行generate的时候,我们自己编写的代码会不会丢失,不会的,插件不会修改或丢弃我们自己编写的代码

一旦掌握了插件如何使用,重要的工作就是如何使用XXXExample类了。这种方式,完全不用编写繁琐的mapper xml文件。

 

 

运行如果报错,首先是要加载<classPathEntry location="C:\Users\loginUser\.m2\repository\postgresql\postgresql\9.0-801.jdbc4\postgresql-9.0-801.jdbc4.jar" />

 

配置目录如果找不到  , 直接写成targetPackage="com.model" targetProject="projectName/src/main/java"

如果是PostgreSql数据库

<jdbcConnection driverClass="org.postgresql.Driver" connectionURL="jdbc:postgresql://localhost:5432/dbname" userId="user" password="pass" />

 

-----------------------------------------------------------②②②②②②②②---------------------------------------------------------

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值