新建 SpringBoot 项目 springboot_mybatis

添加 Mybatis 的起步依赖

1
2
3
4
5
6
7
8
9
10
11
<!--mybatis起步依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- MySQL连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

添加数据库连接信息

application.yml 中添加数据量的连接信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mybatis:
# 指定mybatis别名包
type-aliases-package: com.atguigu.domain
# 指定xml映射文件路径
mapper-locations: classpath:com/atguigu/dao/*.xml
logging:
level:
# 配置日志
com.atguigu.dao: debug
spring:
datasource:
username: root
password: root
url: jdbc:mysql://192.168.88.88:3306/springboot?useUnicode=true&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 1888

创建 user 表

创建名叫springboot数据库,

数据库中新建user

1
2
3
4
5
6
7
8
9
10
11
12
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;


INSERT INTO `user` VALUES ('1', 'zhangsan', '123', '张三');
INSERT INTO `user` VALUES ('2', 'lisi', '123', '李四');

创建实体 Bean

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.atguigu.domain;

import java.io.Serializable;

/**
* @author: ShiGuang
* @create: 2021-06-09 21:21
* @description:
*/
public class User implements Serializable {
// 主键
private Long id;
// 用户名
private String username;
// 密码
private String password;
// 姓名
private String name;

//省略各种方法 .. ..
}

创建 Controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package com.atguigu.controller;

import com.atguigu.domain.User;
import com.atguigu.service.UserService;
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;

/**
* @author: ShiGuang
* @create: 2021-06-09 21:24
* @description:
*/
@RestController
@RequestMapping("/user")
public class UserController {

@Autowired
private UserService userService;


@RequestMapping("/findAll")
private List<User> findAll() {
return userService.findAll();
}

}

创建 Service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.atguigu.service;

import com.atguigu.domain.User;

import java.util.List;

/**
* @author: ShiGuang
* @create: 2021-06-09 21:25
* @description:
*/
public interface UserService {
List<User> findAll();
}

创建实现类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package com.atguigu.service;

import com.atguigu.dao.UserDao;
import com.atguigu.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @author: ShiGuang
* @create: 2021-06-09 21:25
* @description:
*/
@Service
public class UserServiceImpl implements UserService {

@Autowired
private UserDao userDao;

@Override
public List<User> findAll() {
return userDao.findAll();
}
}

创建 Dao

1
2
3
4
5
6
7
8
9
10
11
12
package com.atguigu.dao;

import com.atguigu.domain.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

// @Mapper标记该类是一个mybatis的mapper接口,可以被spring boot自动扫描到spring上下文中
@Mapper
public interface UserDao {
List<User> findAll();
}

编写 Mapper

注意,Mapper 要放到resources下与 UserDao 对应的目录!

比如resources\com\atguigu\dao\UserDao.xmljava\com\atguigu\dao\UserDao.java对应

1
2
3
4
5
6
7
8
<?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.atguigu.dao.UserDao">
<select id="findAll" resultType="user">
select * from user
</select>
</mapper>

测试

运行 main 主程序,浏览器访问:http://localhost:1888/user/findAll