mybatis逆向工程-MyBatis Generator Core使用

0.mybatis逆向工程说明

MyBatis 框架需要:实体类、⾃定义 Mapper 接⼝、Mapper.xml
传统的开发中上述的三个组件需要开发者⼿动创建,逆向⼯程可以帮助开发者来⾃动创建三个组件,减
轻开发者的⼯作量,提⾼⼯作效率。

1.创建maven工程并且导入相关的依赖


    <dependencies>
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.4.5version>
        dependency>
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.11version>
        dependency>
        <dependency>
            <groupId>org.mybatis.generatorgroupId>
            <artifactId>mybatis-generator-coreartifactId>
            <version>1.3.2version>
        dependency>
    dependencies>

mybatis,mysql驱动等等需要自行导入.

2.创建逆向工程配置文件

在resource目录下创建generatorConfig.xml文件



<generatorConfiguration>
    <context id="testTables" targetRuntime="MyBatis3">
        
        <jdbcConnection
                driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true& characterEncoding=utf-8& useSSL=false"
                userId="root"
                password="123456"
        >jdbcConnection>
        
        <javaModelGenerator targetPackage="com.yue.pojo"
                            targetProject="./src/main/java">javaModelGenerator>
        
        <sqlMapGenerator targetPackage="com.yue.dao"
                         targetProject="./src/main/java">sqlMapGenerator>
        
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.yue.dao" targetProject="./src/main/java">
        javaClientGenerator>
        
        <table tableName="user" domainObjectName="User">table>
    context>

generatorConfiguration>

3.创建执行类

package com.yue.test;

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.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

//获取到配置文件并解析,都是固定代码,copy即可
public class Main {
    public static void main(String[] args) {
        List<String> warings = new ArrayList<String>();
        boolean overwrite = true;
        String genCig = "/generatorConfig.xml"; //获取到配置文件
        File configFile = new File(Main.class.getResource(genCig).getFile());
        ConfigurationParser configurationParser = new
                ConfigurationParser(warings);
        Configuration configuration = null;
        try {
            configuration = configurationParser.parseConfiguration(configFile);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (XMLParserException e) {
            e.printStackTrace();
        }
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = null;
        try {
            myBatisGenerator = new
                    MyBatisGenerator(configuration, callback, warings);
        } catch (InvalidConfigurationException e) {
            e.printStackTrace();
        }
        try {
            myBatisGenerator.generate(null);
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

4.执行

mybatis逆向工程-MyBatis Generator Core使用_第1张图片
发现已经自动生成了我们需要的代码

如果报错1
Establishing SSL connection without server's identity verification is not recommended. 

在generatorConfig.xml的url中加入useSSL=false即可
如果报错2
XML Parser Error on line 10: 对实体 "characterEncoding" 的引用必须以 ';' 分

将generatorConfig.xml的url中的&amp;符号使用替换掉即可
connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true& characterEncoding=utf-8& useSSL=false"             
如果报错3
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at org.mybatis.generator.internal.ObjectFactory.internalClassForName(ObjectFactory.java:148)
	at org.mybatis.generator.internal.ObjectFactory.externalClassForName(ObjectFactory.java:119)
	at org.mybatis.generator.internal.JDBCConnectionFactory.getDriver(JDBCConnectionFactory.java:97)
	... 6 more

检查自己mysql驱动包的版本,我的mysql版本为8.0
如果程序运行没有报错,但是却没有自动生成代码

那么检查一下自己生成代码的路径是否写错 targetProject="./src/main/java".

你可能感兴趣的:(mybatis)