Mybatis generator自动生成代码插件实例解析

2025-05-29 0 97

mybatis自动生成代码(实体类、Dao接口等)是很成熟的了,就是使用mybatis-generator插件。 它是一个开源的插件,使用maven构建最好,可以很方便的执行

  插件官方简介:

    http://www.mybatis.org/generator/index.html

  插件的GitHub地址:

    https://github.com/mybatis/generator

如何使用mybatis-generator插件呢?只需要三步:

1、修改pom.xml配置文件

  网上大部分说法都要添加依赖:mybatis-generator-core。但是我测试之后并不需要,可能新版本改版过了吧,只要在<build>中添加<plugin> 就可以了。(如果报错的话再加上mybatis-generator-core的依赖吧)

  需要特别注意的是:这里要指定配置文件目录,名字可以自定义。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
<build>

<plugins>

<plugin>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-maven-plugin</artifactId>

<version>1.3.6</version>

<configuration>

<!--指定配置文件目录-->

<configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>

<overwrite>true</overwrite>

<verbose>true</verbose>

</configuration>

<dependencies>

<!--这里添加了mysql的驱动依赖,就不需要再配置文件中配置了-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.44</version>

</dependency>

</dependencies>

</plugin>

</plugins>

</build>

2、添加pom中指定的配置文件generatorConfig.xml

  比较重要的一个是,该插件生成代码有带xml映射文件的 和不带xml而是使用注解的 两种方式,只需要配置 <javaClientGenerator> 标签的 type 属性:

XMLMAPPER 生成xml映射文件, ANNOTATEDMAPPER 生成的dao采用注解来写sql

  mybatis-generator的属性详解网上也有很多资料,下面给出我的一个模板:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77
<?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>

<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包,如果在pom文件中添加了依赖,那么这里就可以注释掉了-->

<!--<classPathEntry-->

<!--location="E:\\Maven\\mvnRespo\\mysql\\mysql-connector-java\\5.1.44\\mysql-connector-java-5.1.44.jar"/>-->

<!-- 一个数据库一个context -->

<context id="bing" targetRuntime="MyBatis3">

<!-- 生成的model实现Serializable借口 -->

<plugin type="org.mybatis.generator.plugins.SerializablePlugin">

<!--<property name="suppressJavaInterface" value="true"/>-->

</plugin>

<!-- 自动生成equals方法和hashcode方法 -->

<plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/>

<!-- 该插件给实体类添加toString() -->

<plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>

<!--<plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin"/>-->

<plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin"/>

<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"/>

<commentGenerator>

<property name="suppressDate" value="true"/>

<!-- 是否去除自动生成的注释 true:是 : false:否 -->

<property name="suppressAllComments" value="false"/>

<property name="addRemarkComments" value="false"/>

</commentGenerator>

<!--数据库链接URL,用户名、密码 -->

<jdbcConnection driverClass="com.mysql.jdbc.Driver"

connectionURL="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"

userId="root"

password="123456">

</jdbcConnection>

<!-- 类型转换 -->

<javaTypeResolver>

<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->

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

</javaTypeResolver>

<!-- 生成模型(实体)的包名和位置-->

<javaModelGenerator targetPackage="com.ajz.course.ddao.model" targetProject="src/main/java">

<property name="enableSubPackages" value="true"/>

<property name="trimStrings" value="true"/>

</javaModelGenerator>

<!-- 生成映射文件的包名和位置-->

<sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">

<property name="enableSubPackages" value="true"/>

</sqlMapGenerator>

<!-- 生成DAO的包名和位置-->

<!-- XMLMAPPER生成xml映射文件, ANNOTATEDMAPPER 生成的dao采用注解来写sql -->

<javaClientGenerator type="XMLMAPPER" targetPackage="com.ajz.course.ddao.mapper" targetProject="src/main/java">

<property name="enableSubPackages" value="true"/>

</javaClientGenerator>

<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->

<table tableName="course" domainObjectName="CourseModel">

<generatedKey column="id" sqlStatement="MySql" identity="true"/>

</table>

<!-- table可以有多个,每个数据库中的表都可以写一个table,tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->

<table tableName="rel_course_school" domainObjectName="CourseSchoolModel">

<generatedKey column="id" sqlStatement="MySql" identity="true"/>

</table>

</context>

</generatorConfiguration>

3、执行mybatis-generator

  如果使用IDEA来加载项目,那再简单不过了。在【Maven Projects】窗口,找到对应项目下的【Plugins】目录,找到【mybatis-generator】下第一个generate命令,直接双击就好了,如图:

Mybatis generator自动生成代码插件实例解析

  如果非要自己写命令,或者就是非maven项目,那就需要在第二步中必须指定本地的数据库驱动,将目录切换到lib目录下,然后执行脚本:

    java -jar mybatis-generator-core-1.3.6.jar -configfile generatorConfig.xml -overwrite

  (PS:这种方法暂时没验证过啊,网上都这么写的,囧)

  注意:重复执行会覆盖

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://www.cnblogs.com/acm-bingzi/p/mybatis_generator.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Mybatis generator自动生成代码插件实例解析 https://www.kuaiidc.com/117183.html

相关文章

发表评论
暂无评论