• mybatis逆向工程(MyBatis Generator)


    mybatis逆向工程(MyBatis Generator)

    1. 什么是mybatis逆向工程

    mybatis官方为了提高开发效率,提高自动对单表生成sql,包括 :mapper.xml、mapper.java、表名.java(po类)

    在企业开发中通常是在设计阶段对表进行设计 、创建。

    在开发阶段根据表结构创建对应的po类。

    mybatis逆向工程的方向:由数据库表----》java代码

    2. 逆向工程创建(方式一)

    2.1 逆向工程使用配置

    本实例使用通过java程序运行逆向工程;

    逆向工程运行所需要的jar包:

     

    2.2. generator.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    <!-- 1、连接数据库的驱动包路径 -->
     7     <classPathEntry location="D:WorkspaceJ2eeMyeclipsegeneratorWebRootWEB-INFlibmysql-connector-java-5.1.44-bin.jar" /> 
     8 
     9   <context id="DB2Tables" targetRuntime="MyBatis3">
    10     <!-- 1、连接数据库的地址和驱动:数据库链接URL、用户名、密码 -->
    11     <jdbcConnection driverClass="com.mysql.jdbc.Driver"
    12         connectionURL="jdbc:mysql://localhost:3306/elec"
    13         userId="root"
    14         password="123456">
    15     </jdbcConnection>
    16 
    17     <javaTypeResolver >
    18       <property name="forceBigDecimals" value="false" />
    19     </javaTypeResolver>
    20     
    21     <!-- 生成模型的包名和位置 --> 
    22     <javaModelGenerator targetPackage="com.mmzs.pojo" targetProject="generator">
    23       <property name="enableSubPackages" value="true" />
    24       <property name="trimStrings" value="true" />
    25     </javaModelGenerator>
    26     
    27      <!-- 生成的映射文件包名和位置 -->
    28     <sqlMapGenerator targetPackage="com.mmzs.mapper"  targetProject="generator">
    29       <property name="enableSubPackages" value="true" />
    30     </sqlMapGenerator>
    31     
    32      <!-- 生成DAO的包名和位置 --> 
    33     <javaClientGenerator type="XMLMAPPER" targetPackage="com.mmzs.mapper"  targetProject="generator">
    34       <property name="enableSubPackages" value="true" />
    35     </javaClientGenerator>
    36     
    37     <!-- 要生成那些表(更改tableName和domainObjectName就可以) --> 
    38     <table  tableName="testkeycount" domainObjectName="KeyCountbean" 
    39        enableCountByExample="false" enableUpdateByExample="false"
    40                enableDeleteByExample="false" enableSelectByExample="false"
    41                selectByExampleQueryId="false">
    42     </table>
    43  
    44      <table  tableName="testnum" domainObjectName="Numbean" 
    45        enableCountByExample="false" enableUpdateByExample="false"
    46                enableDeleteByExample="false" enableSelectByExample="false"
    47                selectByExampleQueryId="false">
    48     </table>
    49     <!--  <table tableName="t_student" domainObjectName="StuBean"/> -->
    50 
    51   </context>
    52 </generatorConfiguration>
    generator.xml

     目前工程结构如下:

    2.3 运行

    然后右击generator.xml文件===>>单击"Generator MyBatis/iBATIS Artifacts"按钮,此时就自动生成成功了;

    效果如下:

    代码已上传,或者加右侧java的QQ群下载

    3. 逆向工程创建(方式二)

    3.1 逆向工程使用配置

    本实例使用通过java程序运行逆向工程;

    逆向工程运行所需要的jar包:

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

    3.3 配置需要执行的java程序

     1 package com.mmzs.generator;
     2 
     3 
     4 import java.io.File;
     5 import java.io.IOException;
     6 import java.util.ArrayList;
     7 import java.util.List;
     8 
     9 import org.mybatis.generator.api.MyBatisGenerator;
    10 import org.mybatis.generator.config.Configuration;
    11 import org.mybatis.generator.config.xml.ConfigurationParser;
    12 import org.mybatis.generator.exception.XMLParserException;
    13 import org.mybatis.generator.internal.DefaultShellCallback;
    14 
    15 public class Generator {
    16 
    17     public static void main(String[] args) throws Exception {
    18         try {
    19             Generator generatorSqlmap = new Generator();
    20             generatorSqlmap.generator();
    21             System.out.println("逆向工程自动创建完成");
    22         } catch (Exception e) {
    23             e.printStackTrace();
    24         }
    25     }
    26     
    27     
    28     //调用generatorConfig.xml文件,根据其配置自动生成
    29     public void generator() throws Exception{
    30         List<String> warnings = new ArrayList<String>();
    31         boolean overwrite = true;
    32         //指定 逆向工程配置文件
    33         File configFile = new File("generatorConfig.xml"); 
    34         ConfigurationParser cp = new ConfigurationParser(warnings);
    35         Configuration config = cp.parseConfiguration(configFile);
    36         DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    37         MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,
    38                 callback, warnings);
    39         myBatisGenerator.generate(null);
    40     } 
    41 
    42 }
    Generator.java

    3.4 运行

    执行Generator.java程序后,所生成的代码已经生成到当前工程中;

    效果如下:(显示可能有延迟,需要刷新工程才能看到生成的结果)

    代码已上传,或者加右侧java的QQ群下载

    相关链接:玩转SpringBoot之MyBatisplus自动化构建工具

  • 相关阅读:
    springboot中filter的配置和顺序执行
    springboot整合fastdfs实现上传和下载
    移动端通过fiddler代理调试PC端代码
    react-native windows 环境搭建
    带你逐行阅读redux源码
    前端单页面拆分多个单页面
    Koa2学习(九)与mongoDB交互
    Koa2学习(八)使用session
    Koa2学习(七)使用cookie
    Koa2学习(六)使用koa-router
  • 原文地址:https://www.cnblogs.com/mmzs/p/8391289.html
Copyright © 2020-2023  润新知