Spring之旅---mybatis-generator的maven插件方式使用(自动生成mybatis简单的增删改查代码和映射模型)

本文介绍了如何在Spring项目中利用mybatis-generator的maven插件,自动生成mybatis的DAO层代码和映射模型。通过在pom.xml中添加插件依赖,配置resources目录下的mybatis-generator.xml文件,然后运行maven generate命令,即可便捷地生成基于数据库表的DO、DAO接口和XML配置文件。

spring项目中最常使用的ORM框架就是mybatis和hibernate,其中mybatis需要自己写dao接口和xml映射配置,虽然自由度更高,但是确实更麻烦;其中有一部分接口方法的内容就是简单的增删改查,这部分接口方法java代码和xml配置sql代码,是可以通过mybatis-generator连接数据库自动生成的,当然对应的映射模型也就是DO也是对应自动生成的。使用mybatis-generator的方法网上也有很多,不过个人觉得采用maven插件方式还是比较好的,一方面所有操作都可以在IDE完成,不用运行单独的生成软件或在cmd输入maven命令;另一方面maven插件方式的代码侵入性比较低,相比原项目只会多两个东西,一个是pom.xml文件中导入对应maven插件依赖,一个是在resources目录下多一个mybatis-generator的配置文件,而且这两个侵入部分在随后部署时还可以移除。

好吧,下面就来看看mybatis-generato的maven插件方式使用吧

1.在pom.xml文件中导入mybatis-generato的maven插件依赖

代码参考如下

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.7</version>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.17</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>mybatis generator</id>
                        <phase>package</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--是否打印日志-->
                    <verbose>true</verbose>
                    <!--是否允许覆盖-->
                    <overwrite>false</overwrite>
                    <configurationFile>
                        src/main/resources/mybatis-generator.xml
                    </configurationFile>
                </configuration>
            </plugin>

首先要注意这部分依赖要加在pom.xml的project-build-plugins节点下,其次可以看到这里除了加了mybatis-generato的maven插件依赖,还加了mysql的依赖,目的就是使mybatis-generato能连接到mysql数据库,根据数据库中表信息来生成代码

2.resources目录下添加mybatis-generator的配置文件

可以看到在第一步的配置中,我们说明了mybatis-generator的配置文件位置为src/main/resources/mybatis-generator.xml,所以在这个位置添加配置文件mybatis-generator.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>
<!--    <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
		<!-- 数据库连接配置-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mydatabase1?serverTimezone=Asia/Shanghai&amp;useSSL=false"
                        userId="username"
                        password="password">
            <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>

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

		<!--映射模型生成配置 -->
        <javaModelGenerator targetPackage="com.adamly.dhr3.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

		<!-- 映射配置xml文件配置-->
        <sqlMapGenerator targetPackage="mapper"  targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

		<!-- dao接口配置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.adamly.dhr3.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

		<!--具体的从表到映射模型的配置 -->
		<table tableName="user" domainObjectName="UserDO"
	   enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
	   enableUpdateByExample="false" selectByExampleQueryId="false"></table>
        <table tableName="role" domainObjectName="RoleDO"
               enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false" selectByExampleQueryId="false"></table>

    </context>
</generatorConfiguration>

基本的解释都在注释中了,注意两个地方一个是数据库连接配置要换成自己的,一个是具体的从表到映射模型的配置是可以有多个的,这也是我们自己去配置时主要配置的东西,根据这项配置就可以生成表对应的映射模型,dao接口,xml映射配置等dao层代码,好吧,下一步就是生成了

3.运行maven插件命令生成dao层代码

可以在第一步配置的依赖中看到,我们这个mybatis-generator的maven插件设置的maven命令就是generate(见其goal节点),下面我们直接在IDEA中运行这个maven命令,首先点击IDEA右上角的项目运行配置,点击->编辑配置->点击加号->选择maven。然后在maven命令配置中,路径选项目路径,命令填上mybatis-generator:generate,点击ok。之后像运行普通项目一样运行这个命令即可,命令执行完成后可以在各个配置的目录看到相应的dao层代码。

过程提示截图如下

最后,如果之后当前项目不需要再使用mybatis-generator则可以删除相应的maven依赖和配置文件。如果还需要再使用,则直接在mybatis-generator.xml文件添加具体的从表到映射模型的配置即可。

最后多说一点之后使用mybatis要注意的几个点

1、在属性配置文件一定要加一条配置mybatis.mapper-locations=classpath:mapper/*.xml

2、在启动类一定要加一个注解@MapperScan("com.pa.mapper"),根据具体情况修改包路径

3、无论是dao接口还是xml映射配置都还可以添加自定义的dao方法与sql语句,注意方法名与xml中节点id对应即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值