新建springboot项目,选择lombok,springboot-web,mybatis,mysql
一、集成tkMapper
1、依赖
<--springboot加一个依赖就行了-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<--这个可以不加,加自动生成实体类的插件时需要用到这个-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.5</version>
</dependency>
2、目录结构
目录无所谓,就是常规的结构,GeneralDao不要放到dao目录中就行
tkMapper中有两个DAO接口,自定义接口只需要继承这两个接口就行,但是为了更方便,专门建一个GeneralDao继承这两个接口,自己定义接口就只需要继承GeneralDao就行了
GeneramDao接口内容
public interface GeneralDao<T> extends Mapper<T>, MySqlMapper<T> {
}
3.修改@MapperScan的依赖为import tk.mybatis.spring.annotation.MapperScan;
import tk.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.qfedu.fmmall.dao")
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
}
二、逆向工程
1、作用
只需要一个配置文件,就可以生成实体类,DAO接口,Mapper文件
2、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>
<!-- 引入数据库连接配置 -->
<!-- <properties resource="jdbc.properties"/>-->
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 配置 GeneralDAO -->
<!--GeneralDao继续Mapper和MySqlMapper,然后生成的DAO接口都继续GeneralDao-->
<!--public interface GeneralDao<T> extends Mapper<T>, MySqlMapper<T>-->
<!--GeneralDao和生成的Dao接口不能放在同个包中-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.tkmapperdemo.csdn.general.GeneralDao"/>
</plugin>
<!-- 配置数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/fmmall"
userId="root"
password="333">
</jdbcConnection>
<!-- 配置生成实体类存放路径 -->
<javaModelGenerator targetPackage="com.tkmapperdemo.csdn.beans" targetProject="src/main/java"/>
<!-- 配置生成的 XML 存放路径 -->
<sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mappers"/>
<!-- 配置生成的 DAO 存放路径 -->
<javaClientGenerator targetPackage="com.tkmapperdemo.csdn.dao" targetProject="src/main/java" type="XMLMAPPER"/>
<!-- 配置需要指定生成的数据库和表,% 代表所有表 -->
<table tableName="%"></table>
</context>
</generatorConfiguration>
3、POM里的插件
第二个plugin是需要添加的内容,里面的依赖也要复制过来,是提供用插件本身用的
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<!--将配置文件设置到插件中-->
<configuration>
<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
</configuration>
<!--配置两个依赖-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
4、生成实体类,DAO,Mapper
只要点击上面配置的插件就行
三、补充junit和数据库配置
1、添加junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
2、添加数据库配置
application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/fmmall?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=333
mybatis.type-aliases-package=com.tkmapperdemo.csdn.beans
mybatis.mapper-locations=classpath:mappers/*Mapper.xml
四、测试tkMapper的方法
1、给启动类加注解
这里要注册,加的是tk.mybatis的MapperScan,不是mybatis的
2、生成测试类
在dao目录里随便找个接口,按alt+ins生成测试类
3、给测试类加注解,加方法
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CsdnApplication.class)
public class UsersMapperTest {
@Autowired
private UsersMapper usersMapper;
@Test
public void testSelect(){
List<Users> users = usersMapper.selectAll();
for (Users user : users) {
System.out.println(user);
}
}
}
运行效果
到这tkMapper集成成功,逆向工程也完成了
生成的beans,dao,mapper都是在一个模块中的,如果beans和dao不在同个模块,只要把beans复制出来就行,tkMapper的依赖也可以放到beans模块中
五、tkMapper常见方法
下面再列几个tkMapper里的常见方法,测试了下都能成功运行
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CsdnApplication.class)
public class UsersMapperTest {
@Autowired
private UsersMapper usersMapper;
@Test
public void testSelect(){
List<Users> users = usersMapper.selectAll();
for (Users user : users) {
System.out.println(user);
}
}
@Test
public void testInsert(){
Users users = new Users();
users.setUsername("hello");
users.setPassword("33333");
users.setUserImg("img/333.png");
users.setUserRegtime(new Date());
users.setUserModtime(new Date());
int i = usersMapper.insert(users);
System.out.println(i);
}
@Test
public void testUpdate(){
Users users = new Users();
users.setUserId(4);
users.setUsername("hello11");
users.setPassword("world");
users.setUserImg("img/333.png");
users.setUserRegtime(new Date());
users.setUserModtime(new Date());
int i = usersMapper.updateByPrimaryKey(users);
System.out.println(i);
}
@Test
public void testDelete(){
int i = usersMapper.deleteByPrimaryKey(5);
System.out.println(i);
}
//按条件查询
@Test
public void testSelectByExample(){
Example example = new Example(Users.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("username","hello11");
List<Users> users = usersMapper.selectByExample(example);
for (Users user : users) {
System.out.println(user);
}
}
}