小言_互联网的博客

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

386人阅读  评论(0)

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插件依赖

代码参考如下


  
  1. <plugin>
  2. <groupId>org.mybatis.generator </groupId>
  3. <artifactId>mybatis-generator-maven-plugin </artifactId>
  4. <version>1.3.7 </version>
  5. <dependencies>
  6. <dependency>
  7. <groupId>org.mybatis.generator </groupId>
  8. <artifactId>mybatis-generator-core </artifactId>
  9. <version>1.3.7 </version>
  10. </dependency>
  11. <dependency>
  12. <groupId>mysql </groupId>
  13. <artifactId>mysql-connector-java </artifactId>
  14. <version>8.0.17 </version>
  15. </dependency>
  16. </dependencies>
  17. <executions>
  18. <execution>
  19. <id>mybatis generator </id>
  20. <phase>package </phase>
  21. <goals>
  22. <goal>generate </goal>
  23. </goals>
  24. </execution>
  25. </executions>
  26. <configuration>
  27. <!--是否打印日志-->
  28. <verbose>true </verbose>
  29. <!--是否允许覆盖-->
  30. <overwrite>false </overwrite>
  31. <configurationFile>
  32. src/main/resources/mybatis-generator.xml
  33. </configurationFile>
  34. </configuration>
  35. </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,其代码参考如下


  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  4. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  5. <generatorConfiguration>
  6. <!-- <classPathEntry location="/Program Files/IBM/SQLLIB/java/db2java.zip" />-->
  7. <context id="DB2Tables" targetRuntime="MyBatis3">
  8. <commentGenerator>
  9. <property name="suppressDate" value="true"/>
  10. <!-- 是否去除自动生成的注释-->
  11. <property name="suppressAllComments" value="true"/>
  12. </commentGenerator>
  13. <!-- 数据库连接配置-->
  14. <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
  15. connectionURL= "jdbc:mysql://localhost:3306/mydatabase1?serverTimezone=Asia/Shanghai&amp;useSSL=false"
  16. userId= "username"
  17. password= "password">
  18. <property name="nullCatalogMeansCurrent" value="true" />
  19. </jdbcConnection>
  20. <javaTypeResolver >
  21. <property name="forceBigDecimals" value="false" />
  22. </javaTypeResolver>
  23. <!--映射模型生成配置 -->
  24. <javaModelGenerator targetPackage="com.adamly.dhr3.model" targetProject="src/main/java">
  25. <property name="enableSubPackages" value="true" />
  26. <property name="trimStrings" value="true" />
  27. </javaModelGenerator>
  28. <!-- 映射配置xml文件配置-->
  29. <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
  30. <property name="enableSubPackages" value="true" />
  31. </sqlMapGenerator>
  32. <!-- dao接口配置-->
  33. <javaClientGenerator type="XMLMAPPER" targetPackage="com.adamly.dhr3.mapper" targetProject="src/main/java">
  34. <property name="enableSubPackages" value="true" />
  35. </javaClientGenerator>
  36. <!--具体的从表到映射模型的配置 -->
  37. <table tableName="user" domainObjectName="UserDO"
  38. enableCountByExample= "false" enableDeleteByExample= "false" enableSelectByExample= "false"
  39. enableUpdateByExample= "false" selectByExampleQueryId= "false"> </table>
  40. <table tableName="role" domainObjectName="RoleDO"
  41. enableCountByExample= "false" enableDeleteByExample= "false" enableSelectByExample= "false"
  42. enableUpdateByExample= "false" selectByExampleQueryId= "false"> </table>
  43. </context>
  44. </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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场