首页 > 其他 > 详细

mybatis逆向工程-MyBatis Generator Core使用

时间:2020-04-14 20:38:20      阅读:72      评论:0      收藏:0      [点我收藏+]

0.mybatis逆向工程说明

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

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

<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>

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

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

在resource目录下创建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="testTables" targetRuntime="MyBatis3">
        <!-- 1、jdbcConnection 配置数据库连接信息。-->
        <jdbcConnection
                driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&amp;useUnicode=true&amp; characterEncoding=utf-8&amp; useSSL=false"
                userId="root"
                password="123456"
        ></jdbcConnection>
        <!--2、javaModelGenerator 配置 JavaBean(实体类) 的?成策略。targetPackage:实体类所在的包 targetProject:创建包的位置-->
        <javaModelGenerator targetPackage="com.yue.pojo"
                            targetProject="./src/main/java"></javaModelGenerator>
        <!--3、sqlMapGenerator 配置 SQL 映射?件?成策略。-->
        <sqlMapGenerator targetPackage="com.yue.dao"
                         targetProject="./src/main/java"></sqlMapGenerator>
        <!--4、javaClientGenerator 配置 Mapper 接?的?成策略。-->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.yue.dao" targetProject="./src/main/java">
        </javaClientGenerator>
        <!--5、table 配置?标数据表(tableName:表名,domainObjectName:JavaBean 类名)。-->
        <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.执行

技术分享图片
发现已经自动生成了我们需要的代码

如果报错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&amp;useUnicode=true&amp; characterEncoding=utf-8&amp; 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逆向工程-MyBatis Generator Core使用

原文:https://www.cnblogs.com/yue1234/p/12700117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!