MyBatis 框架需要:实体类、?定义 Mapper 接?、Mapper.xml
传统的开发中上述的三个组件需要开发者?动创建,逆向?程可以帮助开发者来?动创建三个组件,减
轻开发者的?作量,提??作效率。
<!-- 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驱动等等需要自行导入.
在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&useUnicode=true& characterEncoding=utf-8& 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>
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();
}
}
}
发现已经自动生成了我们需要的代码
Establishing SSL connection without server‘s identity verification is not recommended.
在generatorConfig.xml的url中加入useSSL=false即可
XML Parser Error on line 10: 对实体 "characterEncoding" 的引用必须以 ‘;‘ 分
将generatorConfig.xml的url中的&符号使用替换掉即可
connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true& characterEncoding=utf-8& useSSL=false"
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