SSM高级整合之mybatis的逆向工程
一、mybatis的官方文档链接:
1.英文版
https://mybatis.org/mybatis-3/getting-started.html
2.中文版
https://mybatis.org/mybatis-3/zh/index.html
二、创建2张表,员工表tbl_emp,部门表tnl_dept
tbl_emp和tnl_dept的外键关联
?三、导入相关的maven包,并配置相关的xml文件
1.在pom.xml中配置mybatis-generator-core依赖包
<!--MBG-->
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
?2.在resources文件下创建mybatis的配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis的主配置文件-->
<configuration>
<!--引入数据源的配置-->
<!--<properties resource="dbconfig.properties"/>-->
<!--设置-->
<settings>
<!--驼峰命名规则,是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!--类型别名-->
<typeAliases>
<!--指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean-->
<package name="com.atzaq.crud.bean"/>
</typeAliases>
</configuration>
?3.在项目下创建一个mbg.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="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!--suppressAllComments设置成true,则自动生成的文件没注释-->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 数据库配置信息,由于需要连接数据库,需要保证项目的classpath下面有数据库的JDBC驱动 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/ssm_crud2?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"
userId="root"
password="root">
</jdbcConnection>
<!-- 指定javaBean生成的位置(生成实体类的配置,是一个必须配置的内容) -->
<javaModelGenerator targetPackage="com.atzaq.crud.bean"
targetProject=".\src\main\java"/>
<!-- 指定sql映射文件生成的位置(sqlMapGenerator是一个可选的配置,配置后可以生成Mapper接口对应的XML文件) -->
<sqlMapGenerator targetPackage="mapper"
targetProject=".\src\main\resources"/>
<!-- 指定dao接口生成的位置,mapper接口(通用Mapper接口的配置,配置javaClientGenerator后会生成对应的接口文件,该接口会自动继承前面配置的通用Mapper接口) -->
<javaClientGenerator
targetPackage="com.atzaq.crud.dao"
targetProject=".\src\main\java"
type="XMLMAPPER"/>
<!--table指定每个表的生成策略(最后一个配置table,这里使用SQL通配符%来匹配所有表。generatedKey意味着所有的表都有一个id自增的主键,在生成实体类的时候会根据该配置生成相应的注解) -->
<table tableName="tbl_emp" domainObjectName="Employee">
</table>
<table tableName="tnl_dept" domainObjectName="Department">
</table>
</context>
</generatorConfiguration>
?4.用java代码的方式带上mbg.xml文件自动生成bean和mapper
package com.atzaq.crud.test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.api.ProgressCallback;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/*
*Date:2021/11/19 16:48
*Author:angle
*Des:
*/
public class MBGTest {
public static void main(String[] args) throws Exception {
List<String> warnings=new ArrayList<String>();
boolean overwrite=true;
File configFile=new File("mbg.xml");
ConfigurationParser cp=new ConfigurationParser(warnings);
Configuration config=cp.parseConfiguration(configFile);
DefaultShellCallback callback=new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator=new MyBatisGenerator(config,callback,warnings);
myBatisGenerator.generate(new ProgressCallback() {
public void introspectionStarted(int i) {
}
public void generationStarted(int i) {
}
public void saveStarted(int i) {
}
public void startTask(String s) {
}
public void done() {
}
public void checkCancel() throws InterruptedException {
}
});
}
}
点击运行MBGTest
?运行后bean、dao包、mapper文件下有自动生成的文件
?
|