欢迎来到淼淼之森的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

IDEA中利用maven实现MyBatis逆向工程 置顶!

  |   0 评论   |   0 浏览

原文作者:Bug 终结者
原文链接:https://bbs.huaweicloud.com/blogs/390689

一、IDEA+Maven实现MyBatis逆向工程

大家好,本周博主为大家带来mybatis逆向工程的实现,具体如下:

二、什么是MyBatis逆向工程

MyBatis Generator,简称mbg,是专门为mybatis定制的代码生成器。

mybatis逆向工程,根据数据表生成Bean实体类、dao接口、mapper映射文件,封装了单表的增删改查操作,但是连表查询需要自定义。

使用Mybatis逆向工程前提要有数据库和数据表

三、使用MyBatis逆向工程的好处

自动生成项目所需要的实体类,mapper接口,和xml文件,简化开发流程

四、如何实现MyBatis的逆向工程?

这里采用IDEA+Maven的方式实现逆向工程,下面进入具体代码编写:

4.1、项目结构图

4.2、新建Maven项目

File —> New —> Project... -> Maven —> Next —> 命名为MyBatisGenerator —> 单击Finsh完成

4.3、编写配置文件

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MyBatisGenerate</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <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>
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
            </configuration>
<!--           数据库5.7-->
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.47</version>
                </dependency>
            </dependencies>
        </plugin>
        </plugins>
    </build>
</project>

新建database.properties配置文件

#连接数据库
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/ssmbuild?useSSL=true
jdbc.username = root
jdbc.password = 111111

#要生成的数据表
jdbc.table.user = user
jdbc.table.books = books

新建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>
<!--    连接外部数据库配置文件-->
    <properties resource="database.properties"/>

    <!-- context 是逆向工程的主要配置信息 -->
    <!-- id:名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">
        <!--optional,指在创建class时,对注释进行控制-->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--jdbc的数据库连接 -->
        <jdbcConnection driverClass="${jdbc.driver}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}"></jdbcConnection>
        <!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
        <javaTypeResolver>
            <!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
            <!-- 不是 double 和 long 类型 -->
            <!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <javaModelGenerator targetPackage="com.wanshi.entity"
                            targetProject="src/main/java">
            <!-- 是否允许子包 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 是否对modal添加构造函数 -->
            <property name="constructorBased" value="true"/>
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true"/>
            <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false"/>
        </javaModelGenerator>
        <!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 -->
        <sqlMapGenerator targetPackage="com.wanshi.mapper"
                         targetProject="src/main/java">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.wanshi.mapper" targetProject="src/main/java">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <!-- tableName是数据库中的表名,domainObjectName是生成的JAVA类名,后面的参数不用改,要生成更多的表就在下面继续加table标签 -->
        <table tableName="${jdbc.table.user}" domainObjectName="User"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>
        <table tableName="${jdbc.table.books}" domainObjectName="Books"
               enableCountByExample="false" enableUpdateByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>

4.4、Maven启动方式

Add Configuration —> + —> Maven -> 编写Maven启动命令 —> Apply同意 —> ok

4.5、测试

OK,已经编写完毕,测试一把

五、结语

ok,到这里MyBatis逆向工程已成功生成,是不是很简单呢,赶快去试试吧~


标题:IDEA中利用maven实现MyBatis逆向工程
作者:jerrycookie
地址:https://www.mmzsblog.cn/articles/2023/09/08/1694141011562.html

如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜 Java 学习之道