SpringBoot--整合MyBatis(XML方式)
整合MyBatis(XML方式)
- 添加MySQL 连接驱动依赖、SpringBoot Mybatis 依赖
完整pom.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>hello</name>
<description>Demo project for Spring Boot</description>
<!--版本信息-->
<properties>
<mybatis-spring-boot>1.3.0</mybatis-spring-boot>
<mysql-connector>5.1.39</mysql-connector>
</properties>
<!-- SpringBoot启动父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- Spring Boot Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MySQL 连接驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector}</version>
</dependency>
<!-- SpringBoot Mybatis 依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot}</version>
</dependency>
<!-- lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- logback 依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<!--Slf4j 依赖-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
</dependencies>
<!-- 如果需要将mapper.xml放在java包下,需添加如下配置 -->
<!-- <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build> -->
</project>
整合MyBatis的核心依赖MyBatis-Spring-Boot-Starter提供:
- 自动检测现有的DataSource
- 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递
- 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
- 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。
因此,引入该Starter之后,只需要定义一个DataSource即可(application.properties中可配置),它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。会自动扫描你的Mappers,连接到SqlSessionTemplate,并注册到Spring上下文中。
配置application.yml文件
配置数据库连接信息(数据源)
spring:
#数据源
datasource:
url: jdbc
//localhost:3306/springbootdb??useUnicode=true&characterEncoding=UTF-8
username: root
password: 123
driver-class-name: com.mysql.jdbc.Driver
配置mybatis
mybatis配置
mybatis:
typeAliasesPackage: com.example.mybaitsxml.dao.entity
mapperLocations: classpath:mapper/*.xml #configLocation: classpath:/mybatis-config.xml
注:通常,若mybatis配置信息较少,只是针对基本配置无需复杂配置,则只需在application.yml文件中配置即可,否则最好配置在 mybatis-config.xml中。
代码实现
工程结构:
controller层
@Slf4j
@RestController
@RequestMapping(“/web”)
public class UserController {@Autowired
private UserService userService;
@GetMapping("/queryAllUsers")
public List<User> queryAllUsers(){
return userService.queryAllUsers();
}
}
service层(实现)
@Slf4j
@Service
public class UserServiceImpl implements UserService {@Autowired
private UserMapper userMapper;
@Override
public List<User> queryAllUsers() {
log.info("/queryAllUsers start...");
return userMapper.queryAllUsers();
}
}
dao层
dao层分为数据库实体类(entity)和数据库操作mapper接口(mapper)
entity:
@Data
public class User {
private String name ;
private String sex;
private Integer age;
private Integer classNo;
}
mapper:
public interface UserMapper {
List<User> queryAllUsers();
}
mapper.xml实现
<?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“ >
测试:
还没有评论,来说两句吧...