zoukankan      html  css  js  c++  java
  • 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方法,生成的代码如下

     

     步骤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=".srcmainjava">  
              <!-- enableSubPackages:是否让schema作为包的后缀 -->  
              <property name="enableSubPackages" value="false" />  
              <!-- 从数据库返回的值被清理前后的空格 -->  
              <property name="trimStrings" value="true" />  
          </javaModelGenerator>  
           <!-- targetProject:mapper映射文件生成的位置 -->  
          <sqlMapGenerator targetPackage="com.fdd.newhouse.mapper"  
          targetProject=".srcmainjava">  
              <!-- enableSubPackages:是否让schema作为包的后缀 -->  
              <property name="enableSubPackages" value="false" />  
          </sqlMapGenerator>  
          <!-- targetPackage:mapper接口生成的位置 -->  
          <javaClientGenerator type="XMLMAPPER" targetPackage="com.fdd.newhouse.mapper"  
          targetProject=".srcmainjava">  
              <!-- 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
     
    如有疑问,欢迎沟通!
  • 相关阅读:
    Dumpbin 工具的使用
    ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
    directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失
    DirectX截图黑屏的解决办法
    VS2008 Project : error PRJ0019: 某个工具从以下位置返回了错误代码: "正在执行生成后事件..."解决方案
    RoundingMode 几个参数详解
    IDEA导入eclipse项目并部署运行完整步骤(转发)
    Intellij idea操作maven时控制台中文乱码
    java 替换json字符串中间的引号保留两边的引号,避免json校验失败
    分布式ID解决方案
  • 原文地址:https://www.cnblogs.com/shunyang/p/4864449.html
Copyright © 2011-2022 走看看