SpringBoot集成MyBatis
属于数据访问层;MyBatis所有的包都是自己的,所以要导入自己的依赖
1、导入驱动和依赖
<!-- 这是自定义的包 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- mysql 驱动 可以用自己的版本-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
2、编写配置文件:application.yaml(在resources目录下)
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://localhost:3306/mybatis?useSSL=true&userUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.jdbc.Driver
# mysql5 com.mysql.jdbc.Driver
# mysql8 com.mysql.cj.jdbc.Driver 必须要在url连接中编写时区 serverTimezone=UTC
3、测试数据源是否已经配置成功,在测试类中测试
package com.star;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootTest
class SpringbootApplicationTests {
// 自动导入数据源
@Autowired
private DataSource dataSource;
@Test
void contextLoads() throws SQLException {
//查看默认数据源 class com.zaxxer.hikari.HikariDataSource
System.out.println(dataSource.getClass());
//获取连接
Connection connection = dataSource.getConnection();
//关闭
connection.close();
}
}
SpringBoot 目前默认的数据源是 class com.zaxxer.hikari.HikariDataSource
4、编写实体类
package com.star.pojo;
import lombok.Data;
@Data
public class User {
private int id;
private String name;
private String pwd;
}
5、编写mapper接口(使用注解或者xml都可以)
package com.star.mapper;
import com.star.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper //标注这个一个mapper接口
@Repository //代表持久层
public interface UserMapper {
// @Value("select * from user")
List<User> getUserList();
}
配置文件中要添加mybatis配置
mybatis:
type-aliases-package: com.star.pojo
mapper-locations: classpath:com/star/mapper/*.xml
6、编写资源过滤
<!--配置资源过滤
true 可以被过滤,即可以根据profile进行属性替换
false 能被编译打包,即能够被复制到classpath目录下
-->
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
7、编写测试类
package com.star.controller;
import com.star.mapper.UserMapper;
import com.star.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class MyBatisController {
@Autowired //自动注入接口
private UserMapper userMapper;
@RequestMapping("list")
public List getUserList(){
List<User> userList = userMapper.getUserList();
return userList;
}
}
测试结果:
我们可得出结论:只需要编写对应的配置文件,导入对应的依赖就可以用了!