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&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对应即可
转载:https://blog.csdn.net/NULLmk404/article/details/106414042