我是靠谱客的博主 精明小松鼠,最近开发中收集的这篇文章主要介绍Spring Boot(四十二):Springboot整合MyBatis Generator,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

MyBatis Generator介绍

        MyBatis Generator,缩写MBG,是一个Mybatis和iBatis的代码生成器。它支持Mybatis的所有版本,支持iBatis 2.2.0以后的版本。通过MyBatis Generator可以根据数据库表生成相应的实体、sql映射文件、Dao等,能应付简单的CRUD(Create, Retrieve, Update, Delete),对于连接查询或存储过程等还是要手动编写sql和对象。

 

MyBatis Generator将生成以下内容:

与表结构匹配的Java POJO。这可能包括:

  • 一个关于表主键的类(如果表有主键)
  • 一个关于表非主键字段的类(BLOB字段除外)
  • 一个包含表BLOB字段的类(如果表有BLOB字段)
  • 一个支持动态查询、修改和删除的类

MyBatis或iBATIS兼容的SQL映射XML文件。MBG为配置中指定的每个表的简单CRUD函数生成SQL,生成的SQL语句包括:

  • 插入
  • 通过主键更新
  • 通过动态where子句更新
  • 通过主键删除
  • 通过动态where子句删除
  • 通过主键查询
  • 通过动态where子句查询
  • 通过动态where子句查询条数

注意:上面的内容并不一定全部生成,比如:如果表没有主键,则不会生成通过主键删除等sql。

 

适合使用上述对象的Java类,Java类的生成是可选的。MBG将为MyBatis 3.X生成以下类型的Java类:

  • 与MyBatis 3.x映射器基础结构配合使用的映射器接口

MBG将为iBATIS 2.x生成以下类型的Java类:

  • 符合Spring框架的DAO
  • 只使用iBATIS SQL映射API的DAO。这些DAO可以通过两种方式生成:通过构造函数或setter注入来提供SqlMapClient。
  • 符合iBATIS DAO框架的DAO(这是iBATIS的一个可选部分,此框架已被弃用,所以建议改用Spring框架)

在迭代开发过程中使用MyBatis Generator的注意事项:

  • 如果存在与新生成的XML文件具有相同名称的现有文件,MBG将自动合并XML文件,合并时,MBG不会覆盖你在XML文件中添加的任何内容。你可以重复生成而不用担心丢失XML文件中你添加的内容,MBG只替换通过MBG生成的任何XML元素。
  • MBG不会合并Java文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件(文件名后加1、2、3等序号)。如果重复生成可以选择自动覆盖替换或手动合并更改。


创建项目

1.引入MyBatis Generator的maven插件

在pom.xml里添加以下内容:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <!-- 添加一个mysql的依赖,防止等会找不到driverClass -->
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.19</version>
                    </dependency>
                </dependencies>
                <!-- mybatisGenerator 的配置 -->
                <configuration>
                    <!-- generator 工具配置文件的位置 -->
                    <configurationFile>src/main/resources/mybatis-generator/generator-config.xml</configurationFile>
                    <!-- 是否覆盖 -->
                    <!-- 此处要特别注意,如果不加这个设置会导致每次运行都会在原目录再次创建-->
                    <overwrite>true</overwrite>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

2、数据源配置

## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/db_ssm
spring.datasource.username=root
spring.datasource.password=xp3338983
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

 

3、MyBatis Generator配置文件

generator-Config.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>
    <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e -->
    <!-- 引入配置文件 -->
    <properties resource="application.properties"/>

    <context id="MySQLTables" targetRuntime="MyBatis3" defaultModelType="flat">

        <!-- 公共设置 -->
        <commentGenerator>
            <!-- 是否取消自动生成时的注释 -->
            <property name="suppressAllComments" value="false"/>
            <!-- 是否取消在注释中加上时间 -->
            <property name="suppressDate" value="false"/>
        </commentGenerator>

        <!-- 链接数据库的配置 -->
        <jdbcConnection driverClass="${spring.datasource.driver-class-name}" connectionURL="${spring.datasource.url}" userId="${spring.datasource.username}" password="${spring.datasource.password}"/>

        <!-- 关于生成实体类的设置 -->
        <!-- targetPackage 生成代码的目标目录 -->
        <!-- targetProject 目录所属位置 -->
        <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java">
            <!-- 在targetPackge的基础上根据schema再生成一层package 默认flase -->
            <property name="enableSubPackages" value="true"/>
            <!-- 是否在get方法中 对String类型的字段做空的判断 -->
            <property name="trimStrings" value="true"/>
            <!-- 是否生成一个包含所有字段的构造器 -->
            <property name="constructorBased" value="false"/>
            <!-- 是否创建一个不可变类-->
            <property name="immutable" value="false"/>
        </javaModelGenerator>

        <!--关于生成映射文件的设置-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <!--同上-->
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!--关于生成dao层的设置-->
        <javaClientGenerator type="mapper" targetPackage="com.example.demo.dao" targetProject="src/main/java">
            <!--同上-->
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

        <!--需要生成的代码对应的表名-->
        <table tableName="t_user"></table>
    </context>
</generatorConfiguration>

 

4、创建mybatis-generator命令快捷方式

该步骤是为了方便在后续直接通过运行命令方式来操作生成mapperpojo等,就像运行application一样。

选中Edit Configurations,打开如下窗口:

如果此处没有Maven条目,需要点击右上角加号,选中Maven

在右侧Command line中输入命令mybatis-generator:generate -e,并设置其Name,如下:

此时,设置完成,点击OK即可。

 

5、执行generate,生成daomapper

执行之前设置的generate命令,运行结果如下:

然后查看项目,发现mapperdao等已经生成好,并且生成了相关CRUD方法,如图:

生成代码就不在此罗列了,可自行尝试。

 

 

最后

以上就是精明小松鼠为你收集整理的Spring Boot(四十二):Springboot整合MyBatis Generator的全部内容,希望文章能够帮你解决Spring Boot(四十二):Springboot整合MyBatis Generator所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部