mybatis逆向工程生成代码

1 什么是逆向工程

mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xmlpo..

由数据库的表生成java代码。

2 下载逆向工程中需要的jar

mybatis-generator-core-1.3.2.jar

当然还需要一些其他的jar,比如连接mysql的jar

mysql-connector-java-5.1.28-bin.jar

3 使用方法

以下介绍两种方法

3.1 通过java project运行逆向工程  

使用java程序方式,不依赖开发工具。

步骤1:添加生成代码配置文件 generatorConfig.xml

内容如下:

 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     <context id="testTables" targetRuntime="MyBatis3">  
 7     <commentGenerator>  
 8         <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
 9         <property name="suppressAllComments" value="true" />  
10     </commentGenerator>  
11     <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->  
12     <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
13            connectionURL="jdbc:mysql://192.168.1.78:3306/fdd_yun" userId="admin" password="Admin_12345">  
14     </jdbcConnection>  
15     <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"  
16     connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg"  password="yycg">  
17     </jdbcConnection> -->  
18     <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和  
19     NUMERIC 类型解析为java.math.BigDecimal -->  
20     <javaTypeResolver>  
21         <property name="forceBigDecimals" value="false" />  
22     </javaTypeResolver>  
23   
24     <!-- targetProject:生成PO类的位置 -->  
25     <javaModelGenerator targetPackage="com.fdd.newhouse.po"  
26     targetProject=".\src">  
27         <!-- enableSubPackages:是否让schema作为包的后缀 -->  
28         <property name="enableSubPackages" value="false" />  
29         <!-- 从数据库返回的值被清理前后的空格 -->  
30         <property name="trimStrings" value="true" />  
31     </javaModelGenerator>  
32   
33      <!-- targetProject:mapper映射文件生成的位置 -->  
34     <sqlMapGenerator targetPackage="com.fdd.newhouse.mapper"  
35     targetProject=".\src">  
36         <!-- enableSubPackages:是否让schema作为包的后缀 -->  
37         <property name="enableSubPackages" value="false" />  
38     </sqlMapGenerator>  
39   
40     <!-- targetPackage:mapper接口生成的位置 -->  
41     <javaClientGenerator type="XMLMAPPER" targetPackage="com.fdd.newhouse.mapper"  
42     targetProject=".\src">  
43         <!-- enableSubPackages:是否让schema作为包的后缀 -->  
44         <property name="enableSubPackages" value="false" />  
45     </javaClientGenerator>  
46     <!-- 指定数据库表 -->  
47     <table tableName="yun_customer"></table>  
48     <table tableName="yun_guide_record"></table>  
49     </context>  
50 </generatorConfiguration>  

 

需要修改的为生成po,mapper的包路径,需要指定的数据库表
 
步骤2:编写运行方法 run
  1.  1 import java.io.File;  
     2 import java.util.ArrayList;  
     3 import java.util.List;  
     4   
     5 import org.mybatis.generator.api.MyBatisGenerator;  
     6 import org.mybatis.generator.config.Configuration;  
     7 import org.mybatis.generator.config.xml.ConfigurationParser;  
     8 import org.mybatis.generator.internal.DefaultShellCallback;  
     9   
    10 public class Start {  
    11   
    12     public static void main(String[] args) throws Exception{  
    13   
    14         List<String> warnings = new ArrayList<String>();  
    15         boolean overwrite = true;  
    16         File configFile = new File("generatorConfig.xml");  
    17         ConfigurationParser cp = new ConfigurationParser(warnings);  
    18         Configuration config = cp.parseConfiguration(configFile);  
    19         DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
    20         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
    21         myBatisGenerator.generate(null);  
    22     }  
    23 }  

     

步骤3:执行main方法,生成的代码如下

 mybatis逆向工程生成代码_第1张图片

 步骤4:拷贝

需要将生成工程中所生成的代码拷贝到自己的工程中。

 

3.2通过maven方式运行
步骤1:在pom中添加
  1. <plugin>  
               <groupId>org.mybatis.generator</groupId>  
               <artifactId>mybatis-generator-maven-plugin</artifactId>  
             <version>1.3.2</version>  
             <dependencies>  
                <dependency>  
                     <groupId>mysql</groupId>  
                     <artifactId>mysql-connector-java</artifactId>  
                     <version>5.1.30</version>  
                </dependency>  
             </dependencies>  
           </plugin>  

     

步骤二:添加生成代码配置文件 generatorConfig.xml放到src/main/resource下
  1. <?xml version="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>  
    <!--     <classPathEntry location="classpath:mysql-connector-java-5.1.30.jar" /> 
     -->    <context id="testTables" targetRuntime="MyBatis3">  
        <commentGenerator>  
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
            <property name="suppressAllComments" value="true" />  
        </commentGenerator>  
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->  
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
               connectionURL="jdbc:mysql://192.168.1.78:3306/fdd_yun" userId="admin" password="Admin_12345">  
        </jdbcConnection>  
        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"  
        connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg"  password="yycg">  
        </jdbcConnection> -->  
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和  
        NUMERIC 类型解析为java.math.BigDecimal -->  
        <javaTypeResolver>  
            <property name="forceBigDecimals" value="false" />  
        </javaTypeResolver>  
        <!-- targetProject:生成PO类的位置 -->  
        <javaModelGenerator targetPackage="com.fdd.newhouse.po"  
        targetProject=".\src\main\java">  
            <!-- enableSubPackages:是否让schema作为包的后缀 -->  
            <property name="enableSubPackages" value="false" />  
            <!-- 从数据库返回的值被清理前后的空格 -->  
            <property name="trimStrings" value="true" />  
        </javaModelGenerator>  
         <!-- targetProject:mapper映射文件生成的位置 -->  
        <sqlMapGenerator targetPackage="com.fdd.newhouse.mapper"  
        targetProject=".\src\main\java">  
            <!-- enableSubPackages:是否让schema作为包的后缀 -->  
            <property name="enableSubPackages" value="false" />  
        </sqlMapGenerator>  
        <!-- targetPackage:mapper接口生成的位置 -->  
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.fdd.newhouse.mapper"  
        targetProject=".\src\main\java">  
            <!-- enableSubPackages:是否让schema作为包的后缀 -->  
            <property name="enableSubPackages" value="false" />  
        </javaClientGenerator>  
        <!-- 指定数据库表 -->  
        <table tableName="yun_customer"></table>  
        <table tableName="yun_guide_record"></table>  
        </context>  
    </generatorConfiguration>  

     

步骤3..执行maven命令
mvn mybatis-generator:generate
覆盖之前写的文件,则如下:
mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
 
如有疑问,欢迎沟通!

你可能感兴趣的:(mybatis逆向工程生成代码)