Mybastic代码生成工具(使用mybatis-generator-core-1.3.2.jar生成)

14 篇文章 1 订阅

前言:

mybatis-generator是根据配置文件中我们配置的数据库连接参数自动连接到数据库并根据对应的数据库表自动的生成与之对应mapper映射(比如增删改查,选择性增删改查等等简单语句)文件、对应的dao接口文件以及对应的entity实体(bean)

一、首先,我们需要引入所需要的jar包

1、mybatis-generator所需的jar包

mybatis-generator-core-1.3.2.jar (mybatis-generator-core的版本可以自行选择)

2、数据库连接jar包

比如Oracle数据库用ojdbc6.jar或者MySQLmysql-connector-Java.jar,版本依据数据库自行选择

二、Mybatis-Generator配置文件详解

1、xml配置文件头

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE generatorConfiguration  
  3.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
  5. <generatorConfiguration>  
  6. <!--这里写配置-->  
  7. </generatorConfiguration>  

2、配置数据库连接jar包所在位置

以ojdbc6.jar为例
[html]  view plain  copy
 print ?
  1. <!-- 指定数据连接驱动jar地址 -->  
  2. <!--     <classPathEntry location="${classPath}" /> -->  
  3.     <classPathEntry location="D:\Repository\Publish\ojdbc6.jar" />  

3、数据库连接参数和自动生成参数配置

详细配置的含义看对应注释
[html]  view plain  copy
 print ?
  1. <context id="SqlTables" targetRuntime="MyBatis3">  
  2.         <!-- 注释 -->  
  3.         <commentGenerator>  
  4.             <property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->  
  5.             <property name="suppressDate" value="true" /><!-- 是否生成注释代时间戳 -->  
  6.         </commentGenerator>  
  7.           
  8.         <!-- jdbc连接 -->  
  9. <!--         <jdbcConnection driverClass="${jdbc_driver}"   -->  
  10. <!--             connectionURL="${jdbc_url}" userId="${jdbc_user}"   -->  
  11. <!--             password="${jdbc_password}" />   -->  
  12.         <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"    
  13.             connectionURL="jdbc:oracle:thin:@//localhost:1521/orcl" userId="admin"    
  14.             password="123456" />    
  15.             
  16.         <!-- 类型转换 -->    
  17.         <javaTypeResolver>    
  18.             <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->    
  19.             <property name="forceBigDecimals" value="false"/>    
  20.         </javaTypeResolver>    
  21.             
  22.         <!-- 生成实体类地址  targetProject是生成文件的存放位置,targetPackage是生成文件的所在packet-->      
  23.         <javaModelGenerator targetPackage="cc.eguid.blog.entity"    
  24.             targetProject="D:Repository\eguid-blog-entity\src\main\java" >  
  25.             <property name="enableSubPackages" value="false"/>  
  26.             <property name="rootClass" value="com.itssky.aqjg.entity.base.BaseInfo"/>  
  27.             <property name="trimStrings" value="true"/>             
  28.         </javaModelGenerator>  
  29.           
  30.         <!-- 生成mapxml文件 -->    
  31.         <sqlMapGenerator targetPackage="cc.eguid.blog.dao.mapper"  
  32.             targetProject="D:\Repository\eguid-blog-dao\src\main\java" >  
  33.             <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->    
  34.             <property name="enableSubPackages" value="false"/>  
  35.         </sqlMapGenerator>    
  36.             
  37.         <!-- 生成mapxml对应client,也就是接口dao -->        
  38.         <javaClientGenerator targetPackage="cc.eguid.blog.dao"    
  39.             targetProject="D:\Repository\aqjg\eguid-blog-dao\src\main\java" type="XMLMAPPER" >    
  40.             <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->    
  41.             <property name="enableSubPackages" value="false"/>  
  42.         </javaClientGenerator>    
  43.           
  44.         <!-- 配置表 -->  
  45.         <!--tableName对应表名,domainObjectName是实体类名 xxxxxByExample这几个是是否生成选择性增删改查mapper-->  
  46.         <table tableName="B_DBGL_PINGSYBAXX" domainObjectName="Pingsybaxx"  
  47.         enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"   
  48.         enableSelectByExample="false" selectByExampleQueryId="false"></table>  
  49.           
  50.     </context>  

三、通过命令行运行

1、命令(generatorConfig.xml为配置文件)

java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite

2、建议在mybatis-generator-core-1.3.2.jar所在文件夹下新建一个xxx.bat文件,里面放入上面的命令,就可以方便自动生成

四、完整配置例子

[html]  view plain  copy
 print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE generatorConfiguration  
  3.         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
  5. <generatorConfiguration>  
  6. <!--     <properties resource="generatorConfig.properties" /> -->  
  7.     <!-- 指定数据连接驱动jar地址 -->  
  8. <!--     <classPathEntry location="${classPath}" /> -->  
  9.     <classPathEntry location="D:\blessedRepository\Publish\ojdbc6.jar" />  
  10.     <context id="SqlTables" targetRuntime="MyBatis3">  
  11.         <!-- 注释 -->  
  12.         <commentGenerator>  
  13.             <property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->  
  14.             <property name="suppressDate" value="true" /><!-- 是否生成注释代时间戳 -->  
  15.         </commentGenerator>  
  16.           
  17.         <!-- jdbc连接 -->  
  18. <!--         <jdbcConnection driverClass="${jdbc_driver}"   -->  
  19. <!--             connectionURL="${jdbc_url}" userId="${jdbc_user}"   -->  
  20. <!--             password="${jdbc_password}" />   -->  
  21.         <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"    
  22.             connectionURL="jdbc:oracle:thin:@//localhost:1521/orcl" userId="admin"    
  23.             password="123456" />    
  24.             
  25.         <!-- 类型转换 -->    
  26.         <javaTypeResolver>    
  27.             <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->    
  28.             <property name="forceBigDecimals" value="false"/>    
  29.         </javaTypeResolver>    
  30.             
  31.         <!-- 生成实体类地址  targetProject是生成文件的存放位置,targetPackage是生成文件的所在packet-->      
  32.         <javaModelGenerator targetPackage="cc.eguid.blog.entity"    
  33.             targetProject="D:Repository\eguid-blog-entity\src\main\java" >  
  34.             <property name="enableSubPackages" value="false"/>  
  35.             <property name="rootClass" value="com.itssky.aqjg.entity.base.BaseInfo"/>  
  36.             <property name="trimStrings" value="true"/>             
  37.         </javaModelGenerator>  
  38.           
  39.         <!-- 生成mapxml文件 -->    
  40.         <sqlMapGenerator targetPackage="cc.eguid.blog.dao.mapper"  
  41.             targetProject="D:\Repository\eguid-blog-dao\src\main\java" >  
  42.             <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->    
  43.             <property name="enableSubPackages" value="false"/>  
  44.         </sqlMapGenerator>    
  45.             
  46.         <!-- 生成mapxml对应client,也就是接口dao -->        
  47.         <javaClientGenerator targetPackage="cc.eguid.blog.dao"    
  48.             targetProject="D:\Repository\aqjg\eguid-blog-dao\src\main\java" type="XMLMAPPER" >    
  49.             <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->    
  50.             <property name="enableSubPackages" value="false"/>  
  51.         </javaClientGenerator>    
  52.           
  53.         <!-- 配置表 -->  
  54.         <!--tableName对应表名,domainObjectName是实体类名 xxxxxByExample这几个是是否生成选择性增删改查mapper-->  
  55.         <table tableName="B_DBGL_PINGSYBAXX" domainObjectName="Pingsybaxx"  
  56.         enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"   
  57.         enableSelectByExample="false" selectByExampleQueryId="false"></table>  
  58.           
  59.     </context>  
  60. </generatorConfiguration>  
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值