一步一步学SpringBoot(二)---SpringBoot使用MybatisGenerator插件生成代码

在pom.xml增加以下依赖

<!-- 以下这些可以新建项目的时候依赖,没有引入版本号是因为parent节点可以控制版本 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 以上这些可以新建项目的时候依赖 -->

<!-- Mybatis 代码生成 -->
<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.3.7</version>
</dependency>

<!-- 接下来引入生成代码插件 -->
<build>
    <!-- plugins 存放插件依赖 -->
    <plugins>
       <!-- 下面这个插件是用来运行SpringBoot的,有两种方式运行SpringBoot,一种是直接运行main方法,一种就是通过插件来运行
            一旦需要访问资源的时候就要使用插件来运行,否则无法访问到资源 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

        <!-- 使用Mybatis generator生成entity类、mapper文件以及dao类 -->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.5</version>
            <executions>
               <execution>
                    <id>Generate Mybatis Artifacts</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- generator 配置文件的位置 -->
                <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
                <verbose>true</verbose>
                <overwrite>true</overwrite>
            </configuration>
        </plugin>
    </plugins>
</build>

在pom中需要修改的只是generator配置文件的位置

配置application.properties

# JDBC配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url = jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF8&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver

修改为你的数据库及用户名和密码
注意:暂时生成插件不支持driver为com.mysql.cj.jdbc.Driver,可以生成之后把driver再改回来

配置generatorConfig.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">
<!--MyBatis Generator 简称MBG-->
<!-- 根节点 没有属性 有三个子元素:
-子元素 >> 1.<properties> (0个或者1个):用于指定一个需要在配置中解析使用的外部属性文件
-       2.<classPathEntry> (0个或者多个):最常见的用法是通过这个属性指定驱动的路径
-       3.<context>(1个或者多个):用于指定生成一组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。运行
-               MyBatis Generator的时候还可以指定要运行的<context>
-->
<generatorConfiguration>

    <!--properties 引入属性文件,引入后可以在配置中使用 ${property}这种形式的引用属性文件中的属性值-->
    <!--属性 >> 1.resource:用于指定classpath下的属性文件的路径,即相对路径(com.example.cxp.XXX.xxx)
    -       2.url:用于指定系统上的特定路径,即绝对路径(file:///C:/Users/CXP/XXX.xxx)
    -       如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties可以直接在generatorConfig.xml中使用
    -->
    <properties resource="./application.properties"/>

    <!--指定mysql驱动-->
    <!--classPathEntry只在下面这两种情况下才有效:
    -1.当加载JDBC驱动连接数据库时
    -2.当加载根类中的JavaModelGenerator检查重写的方法时
    -如果你需要加载其他用途的jar包,classPathEntry起不到作用,不能这么写,解决的办法就是将你用的jar包添加到类路径中,在Eclipse等IDE中运行
    的时候添加jar包比较容易。当从命令行执行的时候,需要用java -cp xx.jar,xx2.jar xxxMainClass这种方式,在-cp后面指定来使用(注意-jar会
    导致-cp无效)
    -->
    <!--属性 >> location:指明加载jar/zip包的全路径-->
    <classPathEntry location="C:\Program Files\MySQL\mysql-connector-java-5.1.46-bin.jar"/>
    <!--F:\Maven\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar-->
    <!-- 必须指定一组生成对象的环境 -->
    <!--子元素 >> 1.<property> (0个或多个):用于指定许多其他元素的属性。支持property元素的每个元素的文档页面列出了有效的不同值。此元素还可
    -               用于将属性传递给您实现的任何自定义代码生成器
    -       2.<plugin> (0个或多个):用来定义一个插件。插件用于扩展或修改通过MyBatis Generator (MBG)代码生成器生成的代码,将按配置中列出
    -               的顺序调用插件。
    -       3.<commentGenerator> (0个或1个):用于定义Comment Generator的属性。Comment Generator用于为MyBatis Generator(MBG)
    -               生成的各种元素生成注释(Java字段,Java方法,XML元素等).默认的Comment Generator将JavaDoc注释添加到所有生成的Java元
    -               素,以在Eclipse插件中启用Java合并功能。 此外,还会为每个生成的XML元素添加注释。 注释的目的还在于告知用户元素是生成的
    -               并且可以再生(即:它们不应被更改),默认实现是org.mybatis.generator.internal.DefaultCommentGenerator。 如果您只
    -               想修改某些行为,则默认实现是为可扩展性而设计的。
    -       4.<connectionFactory>:用于指定连接工厂,以获取内省表所需的数据库连接。 MyBatis Generator使用JDBC的DatabaseMetaData类来
    -               发现您在配置中指定的表的属性。 每个<context>元素都需要一个<connectionFactory>或<jdbcConnection>元素。
    -       5.<jdbcConnection> (1个):用于指定内省表所需的数据库连接的属性。 MyBatis Generator使用JDBC的DatabaseMetaData类来发现您
    -               在配置中指定的表的属性。 每个<context>元素都需要一个<connectionFactory>或<jdbcConnection>元素。
    -       6.<javaTypeResolver> (0个或1个):用来指定JDBC类型和Java类型如何转换
    -       7.<javaModelGenerator> (1个):用来控制生成的实体类,根据<context>中配置的defaultModelType,一个表可能会对应生成多个不同
    -               的实体类,一个表对应多个类实际上并不方便,所以前面也推荐使用flat,这种情况下一个表对应一个实体类。
    -       8.<sqlMapGenerator> (0个或1个):用于定义SQL映射生成器的属性。SQL Map Generator为每个内省表构建一个MyBatis/iBATIS格式的
    -               SQL映射XML文件。
    -               该元素可选,最多配置一个。但是有如下两种必选的特殊情况:
    -                       1.如果targetRuntime目标是iBATIS2,该元素必须配置一个.
    -                       2.如果targetRuntime目标是MyBatis3,只有当<javaClientGenerator>需要XML时,该元素必须配置一个.
    -                       如果没有配置<javaClientGenerator>,则使用以下的规则:
    -                               如果指定了一个<sqlMapGenerator>,那么MBG将只生成XML的SQL映射文件和实体类。
    -                               如果没有指定<sqlMapGenerator>,那么MBG将只生成实体类。
    -       9.<javaClientGenerator> (0个或1个):如果不配置该元素,就不会生成Mapper接口
    -       10.<table> (1个或多个):
    -       注意:子元素需要按照此顺序来配置,否则<context>会提示顺序错误
    -->
    <!--必选属性 >> id:用来唯一确定一个<context>元素
    -可选属性 >> targetRuntime:此属性用于指定生成的代码的运行时环境
    -               可选值 >> MyBatis3(默认值):使用该值,MBG将生成与MyBatis 3.0及更高版本以及JSE 5.0及更高版本兼容的对象(例如,Java
    -                               模型和映射器接口将使用泛型类型)。 这些生成的对象中的“by example”方法支持几乎所有的动态where子句。
    -                               此外,使用这些生成器生成的Java对象支持许多JSE 5.0功能,包括参数化类型和注释。
    -                       MyBatis3Simple:使用该值,MBG将生成与MyBatis 3.0及更高版本以及JSE 5.0及更高版本兼容的对象(例如,Java模
    -                               型和映射器接口将使用泛型类型)。 使用此目标运行时生成的映射器是非常基本的CRUD操作,只是没有
    -                               “by example”方法和非常少的动态SQL。 使用这些生成器生成的Java对象支持许多JSE 5.0功能,包括参数化
    -                               类型和注释
    -                       MyBatis3DynamicSql:使用该值,MBG将生成与MyBatis版本3.4.2及更高版本以及Java 8及更高版本兼容的对象
    -      
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值