环境:
jdk 1.8
idea-2017
spring-boot 2.4.6
1.项目结构
2.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zhan</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-mybatis</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=***
spring.datasource.password=***
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#整合mybatis
# mybatis.type-aliases-package=com.zhan.dto 配置别名
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
4.单元测试:测试是否可以连接上mysql数据库
@SpringBootTest
class SpringbootMybatisApplicationTests {
@Autowired
@Qualifier("dataSource")
DataSource dataSource;
@Test
void contextLoads() throws SQLException {
// 测试是否能连上mysql数据库
System.out.println(dataSource.getConnection());
// 输出结果:HikariProxyConnection@19059689 wrapping com.mysql.cj.jdbc.ConnectionImpl@157dbb5
}
}
5.DTO层
public class UserDto {
private int id;
private String name;
public UserDto(int id, String name) {
this.id = id;
this.name = name;
}
public UserDto() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
6.DAO层
// 查询数据
@Mapper
@Repository
public interface UserDao {
public List<UserDto> getUserList();
}
7.Service层
public interface UserService {
public List<UserDto> getUserList();
}
8.Impl层
@Service("userServiceI")
public class UserImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<UserDto> getUserList() {
return userDao.getUserList();
}
}
9.Controller层
@RequestMapping("/uc")
@Controller
public class UserController {
@Autowired
private UserService userServiceI;
@ResponseBody
@RequestMapping(value="/user",method = RequestMethod.GET)
public List<UserDto> getList(){
List<UserDto> userList = userServiceI.getUserList();
return userList;
}
}
10.mapper
<?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="com.zhan.dao.UserDao">
<select id="getUserList" resultType="com.zhan.dto.UserDto" >
select * from zhan
</select>
</mapper>
11.访问:
http://localhost/uc/user