采用mybatis-generator自动生成Entity和DAO

1. 功能说明:

  • 通过maven工具,自动生成一下文件! maven的操作命令: mybatis-generator:generate
  • 通过/resource/mybatis-generator/,在该目录下,添加配置信息即可。

2. 实际操作:

  1. <!-- pom文件中需要的依赖 以及 buid标签下的配置 -->
  2. <!-- pom文件中添加myabtis-generator的相关依赖-->
  3. <!--分页-->
  4. <!-- pagehelper -->
  5. <dependency>
  6. <groupId>com.github.pagehelper</groupId>
  7. <artifactId>pagehelper-spring-boot-starter</artifactId>
  8. <version>1.2.5</version>
  9. </dependency>
  10. <!--逆向生成实体类和mapper-->
  11. <dependency>
  12. <groupId>org.mybatis.generator</groupId>
  13. <artifactId>mybatis-generator-core</artifactId>
  14. <version>1.4.0</version>
  15. </dependency>
  16. <!-- MyBatis -->
  17. <dependency>
  18. <groupId>org.mybatis</groupId>
  19. <artifactId>mybatis</artifactId>
  20. <version>3.4.5</version>
  21. </dependency>
  22. <!-- mysql数据库连接 -->
  23. <dependency>
  24. <groupId>mysql</groupId>
  25. <artifactId>mysql-connector-java</artifactId>
  26. <version>5.1.46</version>
  27. </dependency>
  28. <!-- buid标签下的配置,希望通过maven工具自动生成代码 -->
  29. <build>
  30. <plugins>
  31. <plugin>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-maven-plugin</artifactId>
  34. </plugin>
  35. <!--添加mybatis generator maven插件-->
  36. <plugin>
  37. <groupId>org.mybatis.generator</groupId>
  38. <artifactId>mybatis-generator-maven-plugin</artifactId>
  39. <version>1.3.5</version>
  40. <configuration>
  41. <!--generatorConfig.xml位置-->
  42. <configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
  43. <verbose>true</verbose>
  44. <overwrite>true</overwrite>
  45. </configuration>
  46. <executions>
  47. <execution>
  48. <id>Generate MyBatis Artifacts</id>
  49. <goals>
  50. <goal>generate</goal>
  51. </goals>
  52. <phase>generate-sources</phase>
  53. </execution>
  54. </executions>
  55. <!--此处必须添加mysql驱动包-->
  56. <dependencies>
  57. <dependency>
  58. <groupId>mysql</groupId>
  59. <artifactId>mysql-connector-java</artifactId>
  60. <scope>runtime</scope>
  61. <version>5.1.46</version>
  62. </dependency>
  63. </dependencies>
  64. </plugin>
  65. </plugins>
  66. </build>

  1. <!-- 在/resources/目录下,新增一个文件夹 mybatis-generator-->
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <!DOCTYPE generatorConfiguration
  4. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  5. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  6. <!-- 配置生成器 -->
  7. <generatorConfiguration>
  8. <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e -->
  9. <!-- 引入配置文件 -->
  10. <properties resource="mybatis-generator/mybatisGeneratorinit.properties"/>
  11. <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->
  12. <!--<classPathEntry location="E:\mybatis\mysql-connector-java-5.1.24-bin.jar" /> -->
  13. <!-- 一个数据库一个context -->
  14. <!--defaultModelType="flat" 大数据字段,不分表 -->
  15. <context id="MysqlTables" targetRuntime="MyBatis3Simple" defaultModelType="flat">
  16. <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
  17. 一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
  18. <property name="autoDelimitKeywords" value="true" />
  19. <!-- 生成的Java文件的编码 -->
  20. <property name="javaFileEncoding" value="utf-8" />
  21. <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
  22. <property name="beginningDelimiter" value="`" />
  23. <property name="endingDelimiter" value="`" />
  24. <!-- 格式化java代码 -->
  25. <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
  26. <!-- 格式化XML代码 -->
  27. <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
  28. <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
  29. <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
  30. <!-- 注释 -->
  31. <commentGenerator >
  32. <property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->
  33. <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->
  34. </commentGenerator>
  35. <!-- jdbc连接 -->
  36. <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" />
  37. <!-- 类型转换 -->
  38. <javaTypeResolver>
  39. <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
  40. <property name="forceBigDecimals" value="false"/>
  41. </javaTypeResolver>
  42. <!-- 生成实体类地址【targetPackage 需要我们自己指定一下】 -->
  43. <javaModelGenerator targetPackage="com.**.firstprogramtrain.pojo" targetProject=".\src\main\java" >
  44. <property name="enableSubPackages" value="false"/>
  45. <property name="trimStrings" value="true"/>
  46. </javaModelGenerator>
  47. <!-- 生成mapxml文件 -->
  48. <sqlMapGenerator targetPackage="mapper" targetProject="${resources}" >
  49. <property name="enableSubPackages" value="false" />
  50. </sqlMapGenerator>
  51. <!-- 生成mapxml对应client,也就是接口dao 【targetPackage 需要我们自己指定一下】-->
  52. <javaClientGenerator targetPackage="com.**.firstprogramtrain.dao" targetProject=".\src\main\java" type="XMLMAPPER" >
  53. <property name="enableSubPackages" value="true" />
  54. </javaClientGenerator>
  55. <!-- table可以有多个,每个数据库中的表都可以写一个table,
  56. tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->
  57. <!--如果想生成一个表则tableName="table_name"-->
  58. <table tableName="%"
  59. enableCountByExample="true"
  60. enableUpdateByExample="true"
  61. enableDeleteByExample="true"
  62. enableSelectByExample="true"
  63. selectByExampleQueryId="true">
  64. <property name="useActualColumnNames" value="false" />
  65. <!-- 数据库表主键 -->
  66. <generatedKey column="id" sqlStatement="Mysql" identity="true" />
  67. </table>
  68. </context>
  69. </generatorConfiguration>
  1. # 在目录 /resources/mybatis-generator/ 下,新增一个mybatis.properties
  2. jdbc_driver=com.mysql.jdbc.Driver
  3. jdbc_url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
  4. jdbc_user=root
  5. jdbc_password=123456
  1. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12372978/1621692775345-e3a5f476-bcfe-4925-957b-c59b2236ca60.png#crop=0&crop=0&crop=1&crop=1&height=274&id=fdg4G&margin=%5Bobject%20Object%5D&name=image.png&originHeight=274&originWidth=392&originalType=binary&ratio=1&rotation=0&showTitle=false&size=14832&status=done&style=none&title=&width=392)