SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)
Posted 月下赶路人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)相关的知识,希望对你有一定的参考价值。
文章目录
SpringBoot的使用
我们在SpringBoot使用·上篇说到了SpringBoot注解、SpringBoot集成JDBC、SpringBoot集成druid(德鲁伊)数据源和sql监控,这篇文章我们会写到SpringBoot和MyBatis的故事。
SpringBoot集成MyBatis
1.首先我们要在SpringBoot的基础上集成MyBatis的相关jar
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
2.在application文件中配置数据源信息
#MyBtais配置
mybatis:
type-aliases-package: com.cwd.springboot.bean #开启别名扫描
mapper-locations: classpath:mapper/*Mapper.xml
configuration:
map-underscore-to-camel-case: true #开启驼峰转换
cache-enabled: true #开启二级缓存
这时我们就可以使用MyBatis了。一个查询的案例奉上:
(1)创建一个t_user表
CREATE TABLE `t_user` (
`id` int NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`age` int DEFAULT NULL,
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8
(2)创建一个User的实体类,并加上相关的注解
import org.apache.ibatis.type.Alias;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
@Alias("User")
public class User
private Integer id;
private String name;
private Integer age;
private Date birthday;
public Integer getId()
return id;
public void setId(Integer id)
this.id = id;
public String getName()
return name;
public void setName(String name)
this.name = name;
public Integer getAge()
return age;
public void setAge(Integer age)
this.age = age;
public Date getBirthday()
return birthday;
public void setBirthday(Date birthday)
this.birthday = birthday;
@Override
public String toString()
return "User" +
"id=" + id +
", name='" + name + '\\'' +
", age=" + age +
", birthday=" + birthday +
'';
(3)创建查询的dao/mapper接口以及sql映射文件
import com.cwd.SpringBootDemo.bean.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao
User findUserById(int id);
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper:根元素 namespace:接口存放路径 类路径-->
<mapper namespace="com.cwd.SpringBootDemo.dao.UserDao">
<select id="findUserById" resultType="com.cwd.SpringBootDemo.bean.User">
select name,age,birthday from t_user where id = #id
</select>
</mapper>
(4)在主类(SpringBoot启动类)上加入一个@MapperScan的注解,它的作用是指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.cwd.SpringBootDemo.dao")
public class SpringBootDemoApplication
public static void main(String[] args)
SpringApplication.run(SpringBootDemoApplication.class, args);
(5)创建调用接口的服务层
import com.cwd.SpringBootDemo.bean.User;
import com.cwd.SpringBootDemo.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Transactional/*开启事务管理*/
public class UserService
@Autowired
UserDao userDao;
public User findUserById(int id)
return userDao.findUserById(id);
(6)测试
import com.cwd.SpringBootDemo.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringBootDemoApplicationTests
@Autowired
UserService userService;
@Test
void contextLoads()
System.out.println(userService.findUserById(3));
日志打印
在application文件中加入日志的配置即可
#日志打印
logging:
level:
com.cwd.SpringBootDemo.dao: trace #等级 只打印操作数据的接口相关日志
file:
name: E:\\\\log\\\\log.log #日志存放的位置
MyBatis-plus的简单搭建
关于MyBtais-plus的详细学习最好还是依赖官方文档进行MyBatis-plus官网这里我们只完成一个简单的搭建。我们还是使用上面MyBtais的类和表,MyBtais的所有东西都不用动,当然MyBatis-plus是包含了MyBatis的一切的。
1.导入MyBatis-plus的相关jar。
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
2.用dao接口类继承BaseMapper,泛型是实体类。
@Repository
public interface UserDao extends BaseMapper<User>
3.如果要操作的表名和类名不一致,我们需要通过@TableName注解解决
@Component
@Alias("User")
@TableName("t_user")
public class User
4.调用接口类,MyBatis-plus封装了很多的操作数据库的sql语句,基本都是单张表操作,直接调用即可。
@Service
@Transactional/*开启事务管理*/
public class UserService
@Autowired
UserDao userDao;
public List<User> findUser()
return userDao.selectList(null);
5.测试
@SpringBootTest
class SpringBootDemoApplicationTests
@Autowired
UserService userService;
@Test
void contextLoads()
System.out.println(userService.findUser());
重要得事情再说一遍:MyBatis-plus的学习最好按照官网的文档学习!!!
以上是关于SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)
SpringBoot使用·下篇(SpringBoot集成MyBatis+日志打印+MyBatis-plus)
手把手教你用VUE开发后台管理系统:搭建SpringBoo 2.xt环境
Swagger2 常用使用 及 SpringBoo 整合 Swagger2