zoukankan      html  css  js  c++  java
  • Mybatis 逆向工程 自动生成代码

    Mybatis 可以通过一定的代码,自动生成包括mapper.xml、mapper.java、po等文件;

    一、环境准备:

    用到的JAR包如下:

    文件只有两个:GenMain.java和generatorConfig.xml文件,都放在src目录下。

    二、实现方法

    1、新建一个JAVA项目,

    GenMain.java(主文件)

     1 import java.io.File;  
     2 import java.io.IOException;  
     3 import java.sql.SQLException;  
     4 import java.util.ArrayList;  
     5 import java.util.List;  
     6   
     7 import org.mybatis.generator.api.MyBatisGenerator;  
     8 import org.mybatis.generator.config.Configuration;  
     9 import org.mybatis.generator.config.xml.ConfigurationParser;  
    10 import org.mybatis.generator.exception.InvalidConfigurationException;  
    11 import org.mybatis.generator.exception.XMLParserException;  
    12 import org.mybatis.generator.internal.DefaultShellCallback;  
    13   
    14 public class GenMain {  
    15     public static void main(String[] args) {  
    16         List<String> warnings = new ArrayList<String>();  
    17         boolean overwrite = true;  
    18         String genCfg = "generatorConfig.xml";  
    19         File configFile = new File(GenMain.class.getResource(genCfg).getFile());  
    20         ConfigurationParser cp = new ConfigurationParser(warnings);  
    21         Configuration config = null;  
    22         try {  
    23             config = cp.parseConfiguration(configFile);  
    24         } catch (IOException e) {  
    25             e.printStackTrace();  
    26         } catch (XMLParserException e) {  
    27             e.printStackTrace();  
    28         }  
    29         DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
    30         MyBatisGenerator myBatisGenerator = null;  
    31         try {  
    32             myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
    33         } catch (InvalidConfigurationException e) {  
    34             e.printStackTrace();  
    35         }  
    36         try {  
    37             myBatisGenerator.generate(null);  
    38         } catch (SQLException e) {  
    39             e.printStackTrace();  
    40         } catch (IOException e) {  
    41             e.printStackTrace();  
    42         } catch (InterruptedException e) {  
    43             e.printStackTrace();  
    44         }  
    45     }  
    46 }  

    配置文件: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 
     6 <generatorConfiguration>
     7     <context id="testTables" targetRuntime="MyBatis3">
     8         <commentGenerator>
     9             <!-- 是否去除自动生成的注释 true:是 : false:否 -->
    10             <property name="suppressAllComments" value="true" />
    11         </commentGenerator>
    12         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
    13         <jdbcConnection driverClass="com.mysql.jdbc.Driver"
    14             connectionURL="jdbc:mysql://localhost:3306/mybatis" 
    15             userId="root"
    16             password="123456">
    17         </jdbcConnection>
    18 
    19         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
    20             NUMERIC 类型解析为java.math.BigDecimal -->
    21         <javaTypeResolver>
    22             <property name="forceBigDecimals" value="false" />
    23         </javaTypeResolver>
    24 
    25         <!-- targetProject:生成PO类的位置 -->
    26         <javaModelGenerator targetPackage="com.itheima.mybatis.po"
    27             targetProject=".src">
    28             <!-- enableSubPackages:是否让schema作为包的后缀 -->
    29             <property name="enableSubPackages" value="false" />
    30             <!-- 从数据库返回的值被清理前后的空格 -->
    31             <property name="trimStrings" value="true" />
    32         </javaModelGenerator>
    33         <!-- targetProject:mapper映射文件生成的位置 -->
    34         <sqlMapGenerator targetPackage="com.itheima.mybatis.mapper" 
    35             targetProject=".src">
    36             <!-- enableSubPackages:是否让schema作为包的后缀 -->
    37             <property name="enableSubPackages" value="false" />
    38         </sqlMapGenerator>
    39         <!-- targetPackage:mapper接口生成的位置 -->
    40         <javaClientGenerator type="XMLMAPPER"
    41             targetPackage="com.itheima.mybatis.mapper" 
    42             targetProject=".src">
    43             <!-- enableSubPackages:是否让schema作为包的后缀 -->
    44             <property name="enableSubPackages" value="false" />
    45         </javaClientGenerator>
    46         <!-- 指定数据库表 -->
    47         <table schema="" tableName="user"></table>
    48         <table schema="" tableName="orders"></table>
    49         <table schema="" tableName="orderdetail"></table>
    50         <table schema="" tableName="items"></table>
    51 
    52         <!-- 有些表的字段需要指定java类型
    53          <table schema="" tableName="">
    54             <columnOverride column="" javaType="" />
    55         </table> -->
    56     </context>
    57 </generatorConfiguration>

     数据库基本配置和生成文件的目录,都在上述文件中配置;

  • 相关阅读:
    Sicily shortest path in unweighted graph
    Sicily connect components in undirected graph
    Sicily 1931. 卡片游戏
    Sicily 1021. Couples
    c++ 高效文本读写
    Sicily 1129. ISBN
    Sicily 1133. SPAM
    Sicily 1282. Computer Game
    小工具?不,这是小工具的集合!
    .Net Core建站(4):FTP发布项目及连接服务器数据库
  • 原文地址:https://www.cnblogs.com/lrzy/p/8422796.html
Copyright © 2011-2022 走看看