经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MyBatis » 查看文章
Mybatis如何自动生成数据库表的实体类
来源:jb51  时间:2021/6/21 13:23:21  对本文有异议

第一步引入jar

在这里插入图片描述

第二步,配置文本文件

  1. # 数据库驱动jar 路径 本地创库的包
  2. drive.class.path=C:/Users/Administrator/.m2/repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar
  3. # 数据库连接参数
  4. jdbc.driver=com.mysql.jdbc.Driver
  5. jdbc.url=jdbc:mysql://192.168.1.188:3306/sxhy_user?useUnicode=true&characterEncoding=utf-8
  6. jdbc.username=root
  7. jdbc.password=rhzh
  8. # 包路径配置
  9. model.package=com.fishing.personal.common.entity
  10. xml.mapper.package=com.fishing.personal.common.dao.mapper
  11. target.project=src/main/java

第三步配置文件

  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. <!-- 配置Run As Maven build : Goals 参数 : mybatis-generator:generate -Dmybatis.generator.overwrite=true -->
  6. <!-- 配置 tableName,使用 Run As Maven build 生成 dao model 层 -->
  7. <!-- maven执行命令:mybatis-generator:generate -->
  8. <generatorConfiguration>
  9. <!-- 配置文件路径 -->
  10. <properties url="${mybatis.generator.generatorConfig.properties}"/>
  11. <!--数据库驱动包路径 -->
  12. <classPathEntry location="${drive.class.path}"/>
  13. <!--
  14. 上下文配置、核心配置
  15. 属性介绍
  16. defaultModelType:
  17. conditional:*这是默认值*,这个模型和下面的hierarchical类似,除了如果那个单独的类将只包含一个字段,将不会生成一个单独的类。
  18. 因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
  19. flat:该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。**这种模型最简单,推荐使用。**
  20. hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段, 则会为表生成一个包含所有BLOB字段的单独的实体类,
  21. 然后为所有其他的字段生成一个单独的实体类。 MBG会在所有生成的实体类之间维护一个继承关系。
  22. -->
  23. <context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType="flat">
  24. <!-- 自动为表名加上前后缀,防止表名中出现空格发生异常(mysql=`) -->
  25. <property name="beginningDelimiter" value="`"/>
  26. <property name="endingDelimiter" value="`"/>
  27. <!--关闭注释 -->
  28. <commentGenerator>
  29. <!-- 阻止生成注释 -->
  30. <property name="suppressAllComments" value="false"/>
  31. <!-- 阻止生成注释包含时间戳 -->
  32. <property name="suppressDate" value="true"/>
  33. </commentGenerator>
  34. <!-- 自定义注释生成类,为以上节点添加type属性 -->
  35. <!-- <commentGenerator type="com.package.abel533.mybatis.generator.MyCommentGenerator"/> -->
  36. <!--数据库连接信息 -->
  37. <jdbcConnection driverClass="${jdbc.driver}" connectionURL="${jdbc.url}" userId="${jdbc.username}"
  38. password="${jdbc.password}">
  39. </jdbcConnection>
  40. <!--生成的model 包路径 -->
  41. <javaModelGenerator targetPackage="${model.package}" targetProject="${target.project}">
  42. <!-- 是否根据catalog和schema来生成子包 -->
  43. <property name="enableSubPackages" value="ture"/>
  44. <!-- 是否使用构造方法入参 -->
  45. <property name="trimStrings" value="true"/>
  46. <!-- 是否对字符串进行trim操作 -->
  47. <property name="trimStrings" value="false" />
  48. </javaModelGenerator>
  49. <!--生成xml mapper文件 路径 -->
  50. <sqlMapGenerator targetPackage="${xml.mapper.package}" targetProject="${target.project}">
  51. <!-- 是否根据catalog和schema来生成子包 -->
  52. <property name="enableSubPackages" value="ture"/>
  53. </sqlMapGenerator>
  54. <!-- 生成的Dao接口 的包路径 -->
  55. <!--
  56. type属性介绍:(仅用于mybatis3)
  57. ANNOTATEDMAPPER:基于注解的Mapper接口,不会有对应的XML映射文件
  58. MIXEDMAPPER:XML和注解的混合形式,(上面这种情况中的)SqlProvider注解方法会被XML替代。
  59. XMLMAPPER:所有的方法都在XML中,接口调用依赖XML文件。
  60. -->
  61. <!-- <javaClientGenerator type="XMLMAPPER" targetPackage="${dao.package}" targetProject="${target.project}">
  62. 是否根据catalog和schema来生成子包
  63. <property name="enableSubPackages" value="ture"/>
  64. </javaClientGenerator> -->
  65. <!-- 对应数据库表名 -->
  66. <table tableName="user_client" modelType="flat">
  67. <!-- 配置所有到方法的根接口 -->
  68. <property name="rootInterface" value="com.rhzh.client.core.generic.GenericDao&lt;Object, Integer&gt;" />
  69. <!-- 配置主键 -->
  70. <generatedKey column="id" sqlStatement="Mysql" identity="true"/>
  71. </table>
  72. <!-- 手动配置table -->
  73. <!--
  74. <table tableName="数据库表名" domainObjectName="自动生成的实体类名" ....更多见参考文档>
  75. 配置表的主键以及所使用的sql语法
  76. <generatedKey column="id" sqlStatement="Mysql"/>
  77. ....更多见参考文档
  78. </table>
  79. -->
  80. </context>
  81. </generatorConfiguration>

第四步配置MAVEN

在这里插入图片描述

第五步配置MAVEN的插件

第六步,启动

Mybatis自动生成xml的配置

idea通过数据库直接生成mybatis的xml和实体文件,很简单,一共分三步

1.配置generatorConfig.xml

2.配置pom

3.配置命令 mybatis-generator:generate -e

1.配置generatorConfig.xml

以下会自动生成entity,mapper,和xml文件

mapper上是没有@Mapper注解的呦

  1. <!--<?xml version="1.0" encoding="UTF-8"?>-->
  2. <!DOCTYPE generatorConfiguration
  3. PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
  4. <generatorConfiguration>
  5. <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->
  6. <classPathEntry location="F:\aaaRepository\java\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar"/>
  7. <context id="mysql">
  8. <commentGenerator>
  9. <property name="suppressDate" value="true" />
  10. <property name="suppressAllComments" value="true" />
  11. </commentGenerator>
  12. <jdbcConnection
  13. connectionURL="jdbc:mysql://localhost:3306/aaa?serverTimezone=GMT%2B8"
  14. driverClass="com.mysql.cj.jdbc.Driver" password="root" userId="root" />
  15. <javaTypeResolver>
  16. <property name="forceBigDecimals" value="false" />
  17. </javaTypeResolver>
  18. <javaModelGenerator targetPackage="com.aaa.bbb.entity" targetProject="src/main/java" >
  19. <property name="constructorBased" value="false"/>
  20. </javaModelGenerator>
  21. <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
  22. <javaClientGenerator targetPackage="com.aaa.bbb.mapper" targetProject="src/main/java" type="XMLMAPPER" >
  23. </javaClientGenerator>
  24. <table tableName="ccc" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"> </table>
  25. </context>
  26. </generatorConfiguration>

“context” 的内容必须匹配按照下面的顺序配置 ?号的可以没有

  1. (connectionFactory|jdbcConnection),
  2. javaTypeResolver?,
  3. javaModelGenerator,
  4. sqlMapGenerator?,
  5. javaClientGenerator?,
  6. table+

2.配置pom

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.mybatis.generator</groupId>
  5. <artifactId>mybatis-generator-maven-plugin</artifactId>
  6. <configuration>
  7. <verbose>true</verbose>
  8. <overwrite>true</overwrite>
  9. </configuration>
  10. </plugin>
  11. <plugin>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-maven-plugin</artifactId>
  14. </plugin>
  15. </plugins>
  16. </build>

3.命令 mybatis-generator:generate -e

在这里插入图片描述

运行上边的命令就行了,实体是驼峰形式的,也可以修改配置和数据库一样

  1. public class Ccc{
  2. private Integer id;
  3. private String identifyCode;
  4. public Integer getId() {
  5. return id;
  6. }
  7. public void setId(Integer id) {
  8. this.id = id;
  9. }
  10. public String getIdentifyCode() {
  11. return identifyCode;
  12. }
  13. public void setIdentifyCode(String identifyCode) {
  14. this.identifyCode = identifyCode;
  15. }
  16. }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号