【MyBatis】代码生成器

前言

  MyBatis代码生成器可以生成数据库表对应的实体类、Mapper接口类、MapperXML文件等,减少了重复操作。

示例

  • 准备数据
1、创建数据库
CREATE DATABASE mybatis;
2、创建表
CREATE TABLE `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `u_name` varchar(20) DEFAULT NULL COMMENT '用户名',
  `u_password` varchar(20) DEFAULT NULL COMMENT '密码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  • 新建Maven项目
File → Project → Maven(maven-archetype-quickstart)→ 
        GroupId(cn.jujianfei.demo)| ArtifactId(demo-mybatis2)→ Next .. → Finish
  • 引入依赖
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.6</version>
</dependency>
<dependency>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-core</artifactId>
  <version>1.3.3</version>
</dependency>
 <dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.46</version>
</dependency>
  • 在项目的src/main/resources中创建一个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>
    <!-- 指定一组对象的环境 -->
    <context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <!-- MySQL数据库分隔符 -->
        <property name="beginningDelimiter" value="`"></property>
        <property name="endingDelimiter" value="`"></property>
        <!-- 注释相关配置 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"></property>
        </commentGenerator>
        <!-- 数据库连接相关配置 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis?useSSL=true" 
                        userId="root"
                        password="jujianfei"></jdbcConnection>
        <!-- 实体类相关配置 -->
        <javaModelGenerator targetPackage="test.model" targetProject="src\main\java"/>
        <!-- Mapper.xml相关配置 -->
        <sqlMapGenerator targetPackage="test.mapper" targetProject="src\main\resources"/>
        <!-- Mapper接口相关配置 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="test.dao"targetProject="src\main\java"/>
        <!-- 数据库表相关配置 -->
        <table tableName="%"></table>

    </context>
</generatorConfiguration>
  • 运行MyBatis Generator。在cn.jujianfei.demo下新建Generator类:
/**
 - 读取MBG配置并生成代码
 */
public class Generator {
    public static void main(String[] args) throws Exception{
        List<String> warnings = new ArrayList<>();
        boolean overwrite = true;
        InputStream is= Generator.class.getResourceAsStream("/generator/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config=cp.parseConfiguration(is);
        is.close();
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config,callback,warnings);
        myBatisGenerator.generate(null);
        for (String warn:warnings ) {
            System.out.println(warn);
        }
    }
}

结语

  代码生成器的运行方式有四种,分别为:

  1、使用Java编写代码运行。
  2、 从命令提示符运行。
  3、 使用Maven Plugin运行。
  4、使用Eclipse插件运行。
  
  示例中的运行方式采用了第一种。

  MBG(MyBatis Generator,MyBatis代码生成器)具有丰富的配置可供使用,这些配置需要以XML形式的标签和属性来实现。示例配置只是展示了其中的一部分功能。如有更多的需求,可重新定义配置文件。

猜你喜欢

转载自blog.csdn.net/gnd15732625435/article/details/81189315