应用开发离不开数据库,有数据库就有CURD,把大量的时间花在写CURD的基础操作上,简直是浪费生命,手都敲软了,一看还有几个操作的SQL没有完成,心理MMP,但还得埋头继续苦干。所以,tkmybatis来了,看他如何解放你的双手,还你更多聊天刷抖音的时间。
前面文章已经对比了mybatis、mybatisspring和tkmybatis。其中最方便和强大的无疑是tkmybatis,它自动帮你实现了数据库单表操作能想到的所有的接口,重要的是,不需要你敲一行SQL代码。放接口:
现在我们实操下,看如何用Sprintboot整合tkmybatis实现数据库访问。
一、前置条件
默认已通过tk-mybatis generator自动生成了po、dao和*mapper.xml(参考上一篇文章5分钟搞定mapper、pojo、xml代码自动生成”),补全Springboot相关依赖,包括spring-boot-starter、spring-boot-starter-web。
二、整合tkmybatis
1、在pom.xml文件中添加依赖
<!--tk.mybatis依赖-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<!-- mysql驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
<scope>runtime</scope>
</dependency>
2、application.properties文件中增加数据源配置和tkmybatis配置
# datasource配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/foodie-shop?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
# TkMybatis配置
## mapper映射文件,配置自动生成的*mapper.xml文件的位置
mybatis.mapper-locations=classpath*:mapper/*.xml
## 所有POJO类所在包路径
mybatis.type-aliases-package=com.example.demotkmybatisgenerator.pojo
3、springboot启动类中配置@MapperScan
@MapperScan一定要配置,该注解制定了DAO层mapper的扫描路径,如果没有配置,那么service中注入的mapper对象,比如OrdersMapper,会注入失败
package com.example.demotkmybatis;
import tk.mybatis.mapper.provider.base.BaseSelectProvider;
import tk.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.example.demotkmybatisgenerator.mapper")
public class DemoTkmybatisApplication {
public static void main(String[] args) {
SpringApplication.run(DemoTkmybatisApplication.class, args);
}
}
4、注入dao层mapper实例,实现数据库调用
通过@Autowired注入的方式,将对应的*Mapper实例注入到需要进行数据库访问的服务中。
package com.example.demotkmybatis.service.impl;
import com.example.demotkmybatis.service.IOrdersService;
import com.example.demotkmybatisgenerator.mapper.OrdersMapper;
import com.example.demotkmybatisgenerator.pojo.Orders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class OdersService implements IOrdersService {
@Autowired
private OrdersMapper ordersMapper;
@Override
public List<Orders> findAll() {
return ordersMapper.selectAll();
}
}
至此,整合tkmybatis所需的所有配置已经完成,启动springboot应用后,service层直接调用注入的mapper接口就可以进行数据库操作。这里省略了controller层对service层的调用,自己根据实际情况进行补全就行。
本文暂时没有评论,来添加一个吧(●'◡'●)