mybatis的逆向工程

1.什么是mybatis中的逆向工程?

通俗地来说就是mybatis中通过数据库中的表,生成pojo类、mapper接口、mapper.xml文件。

2.怎么实现mybatis中的逆向工程?

下面我就说说怎么实现mybatis中的逆向工程,也记录一下自己的学习。

2.1 引入所需的依赖。

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

在这里插入图片描述
2.2 在resource下面创建个mysql.properties文件

在这里插入图片描述
填上连接数据库的信息
在这里插入图片描述
特别说明一下 mysql.properties中 driverClass 的中 低版本中用的是
driverClass = com.mysql.jdbc.Driver 根据自己驱动的版本填写。

2.3 填写Mybatis generator 在 resource下面创建个generatorConfing.xml文件,填写相关的信息,用来生成 mpper接口和 mpper.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>
    <!-- 引入mysql.properties   -->
    <properties resource="mysql.properties"/>
    <!--    id随意-->
     <context id="mysqlInfo">

         <!-- 为模型生成序列化方法-->
         <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
         <!-- 为生成的Java模型创建一个toString方法 -->
         <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/>
         <!--     注释-->
         <commentGenerator>
             <!-- 是否去除自动生成的注释 true:是 : false:-->
             <property name="suppressAllComments" value="true"/>
             <!-- 是否生成注释代时间戳-->
             <property name="suppressDate" value="true"/>
         </commentGenerator>
        <!-- jdbc连接        -->
        <jdbcConnection driverClass="${driverClass}" connectionURL="${connectionUrl}"
        userId="${username}" password="${password}">
        <!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->
        <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>
        <!--生成实体类地址-->
        <javaModelGenerator targetPackage="com.sise.parking.model" targetProject="src\main\java"/>
        <!--指定生成Mapper xml文件地址        -->
        <sqlMapGenerator targetPackage="mapper" targetProject="src\main\resource"/>
        <!--接口生成地址         -->
         <javaClientGenerator  type="XMLMAPPER" targetPackage="com.sise.parking.mapper" targetProject="src\main\java"/>

        <!-- 生成全部表 tableName名称为 %, 指定表名称就为制定表的表名        -->
        <table tableName="%">
            <generatedKey column="id" sqlStatement="mysql" identity="true"/>
        </table>
    </context>


</generatorConfiguration>

在这里插入图片描述
2.4 创建个启动类

package com.sise.parking;



import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * @author:luojianfeng
 * @date: 2020/2/15
 * @description: 逆向工程入口
 **/
public class Generator  {

    public static void main(String[] args) throws IOException, SQLException, InterruptedException, XMLParserException, InvalidConfigurationException {
        //执行过程中的警告信息
        List<String> warnings = new ArrayList<String>();
        //当生成的代码重复时,覆盖原代码
        boolean overwrite = true;
        //读取配置文件
        InputStream is = Generator.class.getResourceAsStream("/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 warning : warnings) {
            System.out.println(warning);
        }
    }
}

在这里插入图片描述
2.5 执行

在这里插入图片描述
它已经为我们生成了 接口 pojo类 和 mapper.xml文件了
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值