在使用mybatis时,集成通用mapper可以大大简化开发。
通用mapper工具类
首先百度下载一个通用mapper工具类,其实就是一个项目。
然后打开通用mapper的配置文件: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="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 通用mapper所在目录 -->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.imooc.my.mapper.MyMapper"/>
</plugin>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/foodie-shop-dev?serverTimezone=GMT%2B8"
userId="consonline"
password="sszfcons">
</jdbcConnection>
<!-- 对应生成的pojo所在包 -->
<javaModelGenerator targetPackage="com.imooc.pojo" targetProject="src/main/java"/>
<!-- 对应生成的mapper所在目录 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
<!-- 配置mapper对应的java映射 -->
<javaClientGenerator targetPackage="com.imooc.mapper" targetProject="src/main/java" type="XMLMAPPER"/>
<!-- 数据库表 -->
<table tableName="表名"></table>
</context>
</generatorConfiguration>
配置文件中有几个地方需要配置 首先要配置通用mapper所在目录。就是项目中MyMapper的路径。
其实是为了生成mapper的时候继承通用mapper时的包引入路径。
然后配置mapper、pojo和mapper对应java的生成路径。这个路径请配置与真实项目的路径一致,这样等生成文件后复制过去就不用在改路径了。
最后添加
写明要生成的表
然后进入GeneratorDisplay这个类中
package com.imooc.mybatis.utils;
import org.mybatis.generator.api.MyBatisGenerator;
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;
public class GeneratorDisplay {
public void generator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("generatorConfig.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(null);
}
public static void main(String[] args) throws Exception {
try {
GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
配置好配置文件的路径后执行就可以生成mapper文件了。
主项目配置及使用
将生成的mapper等文件复制到主项目中(别忘了通用mapper :Mymapper)
然后引入相关依赖
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
然后在启动类中声明mapper扫描的路径
@SpringBootApplication
// 扫描 mybatis 通用mapper所在的包 --要用tk那个包下的
@MapperScan(basePackages = "com.imooc.mapper")
//扫描所以包以及相关组件包 不写默认扫描当前包以及子包
@ComponentScan(basePackages = {"com.imooc","org.n3r.idworker"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
然后在配置下springBoot的配置文件
# 通用 Mapper 配置
mapper:
mappers: com.imooc.my.mapper.MyMapper
not-empty: false # 在进行数据库操作的时候,判断表达式 username != null,是否追加 username != ''
identity: MYSQL # 数据库方言
大功告成