MyBatis Generator使用

目录

一、MyBatis Generator官方参考文档

二、MyBatis Plus官方参考文档

三、MyBatis Generator配置方式

四、MyBatis Generator和MyBatis Plus框架对比


一、MyBatis Generator官方参考文档

MyBatis Generator Core – Introduction to MyBatis Generator

二、MyBatis Plus官方参考文档

简介 | MyBatis-Plus

三、MyBatis Generator配置方式

【1】在resources文件下新建一个目录mybatis-generator(可省略),在目录mybatis-generator下新建文件generatorConfig.xml

【2】pom.xml中引入依赖

 <build>
    <plugins>
        <!--mybatis自动生成代码插件-->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <!-- 是否覆盖,true表示会替换生成的JAVA文件,false则不覆盖 -->
                <overwrite>true</overwrite>
            </configuration>
            <dependencies>
                <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.7</version>
            </dependency>
            <!--mysql驱动包-->
            <dependency>
                <groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
                <version>8.0.27</version>
            </dependency>
            <dependency>
                <groupId>com.itfsw</groupId>
                <artifactId>mybatis-generator-plugin</artifactId>
                <version>1.3.7</version>
            </dependency>
            </dependencies>
        </plugin>
     </plugins>
</build>

【3】配置generatorConfig.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">
<generatorConfiguration>
    <context id="MSTables" targetRuntime="MyBatis3" defaultModelType="flat">

        <property name="autoDelimitKeywords" value="true"/>
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <property name="javaFileEncoding" value="utf-8"/>
        <!-- 格式化java代码 -->
        <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        <!-- 格式化XML代码 -->
        <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
        <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
        <!--覆盖生成XML文件-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>

        <plugin type="com.itfsw.mybatis.generator.plugins.ModelColumnPlugin"/>
        <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin">
            <property name="allowMultiQueries" value="true"/>
        </plugin>
        <plugin type="com.itfsw.mybatis.generator.plugins.LombokPlugin">
            <property name="@Data" value="true"/>
            <property name="@Builder" value="false"/>
            <property name="@AllArgsConstructor" value="false"/>
            <property name="@NoArgsConstructor" value="false"/>
            <property name="@Accessors(chain = true)" value="false"/>
            <property name="supportSuperBuilderForIdea" value="false"/>
        </plugin>
        <plugin type="com.itfsw.mybatis.generator.plugins.CommentPlugin">
            <property name="template" value="src/main/resources/mybatis-generator-comment.ftl" />
        </plugin>

        <commentGenerator>
			<!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>

		<!--数据库连接参数 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test?useSSL=false"
                        userId="xxx"
                        password="xxx">
<!--            <property name="useInformationSchema" value="true"/>-->
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

		<!-- 实体类的包名和存放路径 -->
        <javaModelGenerator targetPackage="com.kyrie.dao.po" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
		<!-- 生成映射文件*.xml的位置-->
        <sqlMapGenerator targetPackage="com.kyrie.dao.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
		<!-- 生成DAO的包名和位置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.kyrie.dao.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

		<!-- tableName:数据库中的表名或视图名;domainObjectName:生成的实体类的类名-->
        <!--user_info-->
        <table tableName="user_info" domainObjectName="UserInfo" enableCountByExample="true"
               enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true"
               selectByExampleQueryId="true">
            <property name="useActualColumnNames" value="false"/>
            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
        </table>
    </context>
</generatorConfiguration>

【4】 利用plugins自动生成代码

四、MyBatis Generator和MyBatis Plus框架对比

Mybatis Generator

Mybatis Plus

代码生成器

支持自动生成;
Model、Mapper、Mapper XML文件;
生成方式不够灵活;
生成代码功能较为简单

支持自动生成;

Entity、Mapper、Mapper XML、Service、Controller文件;

提供BaseMapper接口

CRUD操作

代码生成后,每个Mapper有固定的CRUD方法;
在每个Mapper上分别拓展

提供BaseMapper接口;

可以拓展通用接口

条件构造器

每个实体类自己的Example构造条件

提供Wrapper进行复杂条件构造

乐观锁

支持

主键策略

支持

分页

支持

逻辑删除

支持

通用枚举

支持

攻击SQL阻断

支持

性能分析

支持

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值