zoukankan      html  css  js  c++  java
  • SpringBoot图文教程8 — SpringBoot集成MBG「代码生成器」

    有天上飞的概念,就要有落地的实现

    • 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍

    • 先赞后看,养成习惯

    SpringBoot 图文教程系列文章目录

    1. SpringBoot图文教程1「概念+案例 思维导图」「基础篇上」
    2. SpringBoot图文教程2—日志的使用「logback」「log4j」
    3. SpringBoot图文教程3—「‘初恋’情结」集成Jsp
    4. SpringBoot图文教程4—SpringBoot 实现文件上传下载
    5. SpringBoot图文教程5—SpringBoot 中使用Aop
    6. SpringBoot图文教程6—SpringBoot中过滤器的使用
    7. SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有

    前言

    在使用Mybatis进行项目开发的时候,最繁琐的事情就是实体类,dao接口,mapper.xml文件的编写,几乎每个表都需要对应写一套,并且大部分的工作量都在最基本的增删改查上。如果表中的字段进行了修改,那么实体类,mapper文件甚至dao接口都要进行修改。

    天下苦mapper文件久矣,于是Mybatis官方推荐了一个Mybatis代码生成器(MBG)来救民于水火之中。

    Mybatis 代码生成器

    MBG

    MBG 全称 MyBatis Generator,可以用来生成Mybatis开发相关的代码,包括基本增删改查的实体类,dao接口和mapper文件。并且 MBG 工具支持所有版本的Mybatis。

    官方文档地址:http://mybatis.org/generator/

    SpringBoot 集成 MBG

    本文代码会在一个SpringBoot+Mybatis的空项目中进行,如有需要请去Git仓库下载:https://gitee.com/bingqilinpeishenme/Java-Tutorials

    1.导入依赖

    SpringBoot中使用MBG需要在导入MBG依赖的同时导入MBG的启动插件。
    MBG的依赖

    <!--MybatisGenerator的依赖jar包-->
    <dependency>
    			<groupId>org.mybatis.generator</groupId>
    			<artifactId>mybatis-generator-core</artifactId>
    			<version>1.3.2</version>
    		</dependency>
    

    MBG的启动插件

    <!--MybatisGenerator的启动插件-->
    			<plugin>
    				<groupId>org.mybatis.generator</groupId>
    				<artifactId>mybatis-generator-maven-plugin</artifactId>
    				<version>1.3.2</version>
    				<!--jar包去生成对应类 需要连接数据库 数据连接的版本和项目中的一致-->
    				<dependencies>
    					<dependency>
    						<groupId>mysql</groupId>
    						<artifactId>mysql-connector-java</artifactId>
    						<version>5.1.38</version>
    					</dependency>
    				</dependencies>
    				
    				<configuration>
    					<!--MBG配置文件的路径 -->
    					<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
    					<overwrite>true</overwrite>
    				</configuration>
    			</plugin>
    

    注意:

    1. 插件中的 mysql-connector-java 版本和项目中版本号一致
    2. configurationFile 配置的是 MBG配置文件的地址 src/main/resources

    2.导入并编写MBG配置文件

    导入依赖之后,需要在SpringBoot resources目录下导入 MBG 的配置文件 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="test" targetRuntime="MyBatis3">
            <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"></plugin>  
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin> 
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin"></plugin>
    
            <commentGenerator>
                <!-- 这个元素用来去除指定生成的注释中是否包含生成的日期 false:表示包含 -->
                <!-- 如果生成日期,会造成即使修改一个字段,整个实体类所有属性都会发生变化,不利于版本控制,所以设置为true -->
                <property name="suppressDate" value="true" />
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="true" />
    
            </commentGenerator>
    
            <!--数据库链接URL,用户名、密码 -->
            <jdbcConnection
                    driverClass="com.mysql.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost/demo"
                    userId="root"
                    password="123456">
            </jdbcConnection>
    
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!-- 生成实体类的包名和位置 -->
            <javaModelGenerator targetPackage="com.lu.entity"
                targetProject="src/main/java">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!--生成映射文件的包名和位置  com/lu/mapper-->
            <sqlMapGenerator targetPackage="mapper"
                targetProject="src/main/resources">
                <property name="enableSubPackages" value="true" />
            </sqlMapGenerator>
    
            <!-- 生成DAO的包名和位置 mybatis两种开发模式 xml 注解式-->
            <javaClientGenerator type="XMLMAPPER"
                targetPackage="com.lu.dao" targetProject="src/main/java">
                <property name="enableSubPackages" value="true" />
            </javaClientGenerator>
            
            <!-- 要生成哪些表 -->
            <table tableName="user" domainObjectName="User"
                   enableCountByExample="false" enableUpdateByExample="false"
                   enableDeleteByExample="false" enableSelectByExample="false"
                   selectByExampleQueryId="false">
            </table>
    
         
    
        </context>
    </generatorConfiguration>
    

    重点配置 !!!

    在配置文件中有一下配置需要使用者根据自己的情况进行配置

    1. 数据库连接参数 修改为自己数据库的连接参数

    2. dao接口 实体类 mapper文件生成位置 包结构的配置

    注意:生成位置和包结构参数根据自己实际情况进行修改,其他的内容不需要修改

    1. 配置 要生成哪些表 对应的实体类 dao接口 和 mapper文件

    注意:除了以上三个配置,其他配置都可以不必修改

    3.通过插件启动可生成代码

    运行插件,生成代码如下:

    • 实体类

    • dao接口

    • mapper文件

    总结

    Tips:本文示例代码项目地址为:https://gitee.com/bingqilinpeishenme/Java-Tutorials

    恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

    让我们再次回顾本文的学习目标

    • 掌握SpringBoot中MBG的使用

    要掌握SpringBoot更多的用法,请持续关注本系列教程。

    求关注,求点赞,求转发

    欢迎关注本人公众号:鹿老师的Java笔记,将在长期更新Java技术图文教程和视频教程,Java学习经验,Java面试经验以及Java实战开发经验。

    欢迎关注本人公众号:鹿老师的Java笔记,将在长期更新Java技术图文教程和视频教程,Java学习经验,Java面试经验以及Java实战开发经验。

  • 相关阅读:
    matplotlib数据可视化之柱形图
    xpath排坑记
    Leetcode 100. 相同的树
    Leetcode 173. 二叉搜索树迭代器
    Leetcode 199. 二叉树的右视图
    Leetcode 102. 二叉树的层次遍历
    Leetcode 96. 不同的二叉搜索树
    Leetcode 700. 二叉搜索树中的搜索
    Leetcode 2. Add Two Numbers
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/bingyang-py/p/12391544.html
Copyright © 2011-2022 走看看