• Springboot的Mybatis逆向工程


    1、pom.xml添加mybatis和逆向插件依赖:

    <dependency>
    	<groupId>org.mybatis.spring.boot</groupId>
    	<artifactId>mybatis-spring-boot-starter</artifactId>
    	<version>1.3.2</version>
    </dependency>
    
    <!-- mybatis-generator-core 反向生成java代码-->
    <dependency>
    	<groupId>org.mybatis.generator</groupId>
    	<artifactId>mybatis-generator-core</artifactId>
    	<version>1.3.5</version>
    </dependency>    
    

    2、application.properties配置数据库连接信息:

    #mysql数据配置
    spring.datasource.driverClassName=com.mysql.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=test
    spring.datasource.password=test
    

    3、写mybatis-generator.xml文件:

    <?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">
    <!-- mybatis逆向生成xml配置 -->
    <generatorConfiguration>
        <properties resource="application.properties" /> <!-- 数据库连接配置文件 -->
        <context id="sqlserverTables" targetRuntime="MyBatis3">
            <!-- 生成的pojo,将implements Serializable-->
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
            <commentGenerator>
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
    
            <!-- 数据库链接URL、用户名、密码 -->
            <jdbcConnection driverClass="${spring.datasource.driverClassName}"
                            connectionURL="${spring.datasource.url}"
                            userId="${spring.datasource.username}"
                            password="${spring.datasource.password}">
            </jdbcConnection>
    
            <!--
                默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
                true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal
            -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!--
                生成model模型,对应的包路径,以及文件存放路径(targetProject),targetProject可以指定具体的路径,如./src/main/java,
                也可以使用“MAVEN”来自动生成,这样生成的代码会在target/generatord-source目录下
            -->
            <!--<javaModelGenerator targetPackage="com.joey.mybaties.test.pojo" targetProject="MAVEN">-->
            <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="./src/main/java">
                <property name="enableSubPackages" value="true"/>
                <!-- 从数据库返回的值被清理前后的空格  -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!--对应的mapper.xml文件  -->
            <sqlMapGenerator targetPackage="config/xml" targetProject="./src/main/resources">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <!-- 对应的Mapper接口类文件 -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.mapper" targetProject="./src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
            <!-- 列出要生成代码的所有表,这里配置的是不生成Example文件 -->
            <table tableName="user_info" domainObjectName="UserInfo"
                   enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"
                   enableSelectByExample="false" selectByExampleQueryId="false" >
                <property name="useActualColumnNames" value="false"/>
            </table>
        </context>
    </generatorConfiguration>
    

    4、编写GenMain.java类:

    package com.example.demo.CodeGenerator;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.mybatis.generator.api.MyBatisGenerator;
    import org.mybatis.generator.config.Configuration;
    import org.mybatis.generator.config.xml.ConfigurationParser;
    import org.mybatis.generator.exception.InvalidConfigurationException;
    import org.mybatis.generator.exception.XMLParserException;
    import org.mybatis.generator.internal.DefaultShellCallback;
    import org.springframework.util.ResourceUtils;
    /**************************************
    * 类说明:
    *     mybatis逆向工程main函数
    ***************************************
    */
    public class GenMain {
        public static void main(String[] args) throws FileNotFoundException {
            List<String> warnings = new ArrayList<String>();  
            boolean overwrite = true;
            //如果这里出现空指针,直接写绝对路径即可。
            String genCfg = "E:\cloud\demo\src\test\resources\config\mybatis-generator.xml";
    //        File configFile = new File(GenMain.class.getResource(genCfg).getFile()); //获取路径出错
            File configFile = ResourceUtils.getFile(genCfg);
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = null;  
            try {  
                config = cp.parseConfiguration(configFile);  
            } catch (IOException e) {  
                e.printStackTrace();  
            } catch (XMLParserException e) {  
                e.printStackTrace();  
            }  
            DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
            MyBatisGenerator myBatisGenerator = null;  
            try {  
                myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
            } catch (InvalidConfigurationException e) {  
                e.printStackTrace();  
            }  
            try {  
                myBatisGenerator.generate(null);  
            } catch (SQLException e) {  
                e.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            } catch (InterruptedException e) {  
                e.printStackTrace();  
            }  
        }
    }
    

    5、运行GenMain.java类的main方法,刷新项目即可。

  • 相关阅读:
    牛客网Java刷题知识点之方法覆盖(方法重写)和方法重载的区别
    牛客网Java刷题知识点之自动拆装箱
    安装Phoenix时./sqlline.py执行报错File "./sqlline.py", line 27, in <module> import argparse ImportError: No module named argparse解决办法(图文详解)
    Apache-kylin-2.0.0-bin-hbase1x.tar.gz的下载与安装(图文详解)
    Apache Kylin的架构特性
    Apache Kylin Cube 的存储
    Apache Kylin Cube 的构建过程
    Apache Kylin的核心概念
    中央网络安全和信息化领导小组办公室
    中国智慧城市建设投资联盟
  • 原文地址:https://www.cnblogs.com/kibana/p/8930248.html
Copyright © 2020-2023  润新知