使用MyBatis-Generator自动生成逆向工程的步骤

1. 准备工作(本文基于MySQL数据库)

         创建一个数据库,并创建表一个表。此处我的数据库为: mp ,表为:employee

2. 创建一个SpringBoot项目,并在pom.xml文件中导入依赖

<plugins>
	<plugin>
		<groupId>org.mybatis.generator</groupId>
		<artifactId>mybatis-generator-maven-plugin</artifactId>
		<version>1.3.5</version>
		<configuration>
			<!-- 在控制台打印执行日志 -->
			<verbose>true</verbose>
			<!-- 重复生成时,是否覆盖之前的文件-->
			<overwrite>true</overwrite>
			<!-- 指定generatorConfig.xml文件的位置,注意别写错-->
			<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
		</configuration>
		<dependencies>
			<!--MySQL依赖-->
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
                <!--要与你们自己SpringBoot版本对应的mysql-connector版本相同-->
				<version>8.0.27</version>
				<scope>runtime</scope>
			</dependency>
		</dependencies>
	</plugin>
</plugins>

3. 在resources文件下创建两个配置文件

           

        1) generator.properties:用于存放数据库连接信息 

jdbc.driverClassName=com.mysql.cj.jdbc.Driver
# 此处请修改为你们自己的数据库连接信息
jdbc.url=jdbc:mysql://localhost:3306/mp?characterEncoding=UTF-8&serverTimezone=UTC
jdbc.username=root
jdbc.password=111111

        2) generatorConfig.xml:为MyBatis-Generator的配置文件

<?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>
    <!--从generator.properties文件中获取参数-->
    <properties resource="generator.properties"/>


    <!-- 配置一个代码生成操作,如果生成的目录或是数据库不一样,只需要参考增加一个context节点即可-->
    <!-- context 是逆向工程的主要配置信息 -->
    <!-- id:自己随便起个名字,不能重复 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="MyEmployee" targetRuntime="MyBatis3">
        <!--optional,指在创建class时,对注释进行控制-->
        <commentGenerator>
            <!-- 是否阻止生成注释 true:阻止  false:不阻止(默认) -->
            <property name="suppressAllComments" value="true"/>
            <!-- 是否阻止生成的注释包含时间戳 true:阻止 false:不阻止(默认)-->
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!--jdbc的数据库连接参数,从generator.properties文件中获取参数-->
        <jdbcConnection
                driverClass="${jdbc.driverClassName}"
                connectionURL="${jdbc.url}"
                userId="${jdbc.username}"
                password="${jdbc.password}">
        </jdbcConnection>

        <!--非必须,类型处理器,指定数据库类型和java类型之间如何转换-->
        <javaTypeResolver>
            <!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
            <!-- 而不是 double 和 long 类型 -->
            <!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
            <!-- 是否强制DECIMAL和NUMERIC类型的字段转换为Java类型的java.math.BigDecimal,默认值为false,一般不需要配置-->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的位置 -->
        <javaModelGenerator targetPackage="com.baidu.mybatisgenerator.entity"
                            targetProject="src/main/java">
            <!-- 是否允许子包 -->
            <property name="enableSubPackages" value="true"/>
            <!-- 是否对modal添加构造函数 -->
            <property name="constructorBased" value="true"/>
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true"/>
            <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
        </javaModelGenerator>

        <!-- targetPackage 和 targetProject:指定生成映射文件(XxxMapper.xml)的位置 -->
        <sqlMapGenerator targetPackage="mapper"
                         targetProject="src/main/resources">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>


        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.baidu.mybatisgenerator.dao" targetProject="src/main/java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!-- tableName:数据库中的表名,要生成更多的表就在下面继续加table标签,可以使用SQL通配符匹配多个表:<table tableName="%"/> -->
        <!-- domainObjectName:要生成的实体类名(可以不指定,默认按帕斯卡命名法将表名转换成类名) -->
        <!-- enableXXXByExample 默认为 true, 为 true 会生成一个对应Example帮助类,帮助你进行条件查询,不想要可以设为false-->
        <table tableName="employee" domainObjectName="Employee"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false"/>
    </context>
</generatorConfiguration>

4. 自动生成逆向工程


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值