MyBatis详解(6)--MyBatis代码生成器

环境

IDEA 、Maven、Springboot 项目,MySQL 数据库

一、使用 java 代码编码运行的方式

1. pop.xml 中添加 generator 依赖

        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.6</version>
        </dependency>

2. 数据库配置文件 jdbc.properties

在resources 目录下创建 jdbc.properties,在配置 generatorConfig.xml 需要。
jdbc.properties 中的内容如下

# 本地 mysql版本8.0以上的用  com.mysql.cj.jdbc.Driver,以下的用 com.mysql.jdbc.Driver
# Mysql 8.0 以上的需要额外添加 useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
# jdbc.url 中的 study 是本地创建的数据库名
jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/study?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
#自己数据的用户名和密码
jdbc.username=root
jdbc.password=123456

3. MyBatis Generator 配置类 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">

<!-- 下面的标签之间的顺序不能颠倒,否则可能会出错 -->
<generatorConfiguration>
    <!-- 引入外部资源文件,第2步的配置文件 -->
    <properties resource="jdbc.properties"></properties>
 
     <!-- 使用 java 代码编码运行的方式不需要配置 classPathEntry;使用maven方式时如果在pop.xml 中做了配置这里也不需要配置了 -->
    <!-- <classPathEntry location="F:\25k\projects\mysql-connector-java-8.0.11.jar"/> -->
	
    <context id="MySqlContext" targetRuntime="MyBatis3Simple"
             defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>
        
		<!-- 数据库配置,如果用写死的方式,在配置URL时需要配置多个参数时需要用到符号"&"时会出错,因此使用文件配置 -->
        <!--<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"-->
        <!--connectionURL="jdbc:mysql://127.0.0.1:3306/study?serverTimezone=UTC"-->
        <!--userId="root"-->
        <!--password="123456">-->
        <jdbcConnection driverClass="${jdbc.driverClass}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>
		<!-- 注意这里的顺序也不能颠倒 javaModelGenerator-> sqlMapGenerator -> javaClientGenerator -->
        <!--生成 model -->
        <javaModelGenerator targetPackage="com.example.mybatis.dao.domain" 
        					targetProject="src\main\java">
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="mapper" targetProject="src\main\resources"/>

        <!--生成 dao 层 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mybatis.dao" targetProject="src\main\java">
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

		<!-- tableName:数据库中表名,  domainObjectName:生成的实体类,其他配置成fasle 即可-->
         <table tableName="sys_role"
               domainObjectName="SysRoleDO" enableCountByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false"
               enableUpdateByExample="false">
        </table>

    </context>
</generatorConfiguration>

4. 创建 Generator类

/**
*
* 读取 MyBatis Generator 配置生成代码
*/
public class Generator {

    public static void main(String[] args) throws Exception {
        //MBG 执行过程中的警告信息
        List<String> warnings = new ArrayList<>();
        //当生成的代码重复时,覆盖源代码
        boolean overwrite = true;
        //读取 MyBatis Generator 配置文件
        InputStream inputStream = Generator.class.getResourceAsStream("/generator/generatorConfig.xml");

        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(inputStream);
        inputStream.close();

        DefaultShellCallback callback = new DefaultShellCallback(overwrite);

        //创建 MBG
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        //执行生成代码
        myBatisGenerator.generate(null);
        //输出警告信息
        for (String warning : warnings) {
            System.out.println(warning);
        }
    }
}

运行该Generator 类中的main 方法即可,不需要做其他配置了。这种方式最简单,也不容易出错。

二、 使用maven 方式运行

使用 maven 方式需要在 pop.xml 中添加一些配置才能使用

1. 添加插件依赖和一些配置


<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
            	<!-- 添加 generator 依赖 -->
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
                <!-- 添加一些配置 -->
                <configuration>
                	<!-- 配置配置文件的路径 -->
                	<!-- 绝对路径方式 -->
                	<!-- <configurationFile>${basedir}/src/main/resources/mybatis-generator.xml</configurationFile> -->
                	<!-- 相对路径方式 -->
                    <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <!--执行过程会输送到控制台-->
                    <verbose>true</verbose>
                    <!-- true 时如果有同类名就会被覆盖 -->
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <!--这里配置了就不需要在配置文件中添加 <classPathEntry location="数据库驱动地址"/> ,建议在这里配置-->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>8.0.11</version>
                    </dependency>
                    <!--配置当前项目的依赖,一些定制的MBG类才会被找到,如本项目中的MyCommentGenerator,如果没有不需要配置-->
                    <!--<dependency>-->
                        <!--<groupId>com.example.mybatis</groupId>-->
                        <!--<artifactId>mybatis</artifactId>-->
                        <!--<version>0.0.1-SNAPSHOT</version>-->
                    <!--</dependency>-->
                </dependencies>
            </plugin>
        </plugins>
    </build>
        

配置好后执行 maven 指令:
mvn mybatis-generator :generate
如果使用 IDEA,在界面右边找到maven project 中的 generator,然后执行改指令即可

2. 其他步骤同第一种方式

三、命令方式

配置太复杂,一般很少用,这里略过,有兴趣的自己查询相关资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值