本文演示SpringBoot整合MyBatis-Plus。
一、项目搭建
新建一个SpringBoot项目,引入依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>8.0.22</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
二、配置文件
配置项目端口号,添加数据库数据源配置信息:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: ********
password: ********
server:
port: 8088
三、库表准备
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张三');
INSERT INTO `user` VALUES (2, '李四');
INSERT INTO `user` VALUES (3, '王五');
INSERT INTO `user` VALUES (4, '赵六');
四、各层代码编写
①entity层
@NoArgsConstructor
@AllArgsConstructor
@Data
@TableName("user")
public class User {
@TableId
private Integer id;
private String name;
}
②dao层
此处也展示了剔除xml映射文件完全采用注解方式的接口实现。
@Repository
public interface UserDao extends BaseMapper<User> {
@Select(value = "select * from user where id <= 2 ")
List<User> getUsersByCondition();
}
③service及serviceImpl层
public interface UserService {
List<User> getAllUser();
User getUserById(Integer id);
List<User> getUsersByCondition();
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> getAllUser() {
return userDao.selectList(null);
}
@Override
public User getUserById(Integer id) {
return userDao.selectById(id);
}
@Override
public List<User> getUsersByCondition() {
return userDao.getUsersByCondition();
}
}
④controller层
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/getAllUser")
public List<User> getAllUser(){
return userService.getAllUser();
}
@GetMapping("/getUsers")
public List<User> getUsersByCondition(){
return userService.getUsersByCondition();
}
@GetMapping("/getById")
public User getUserById(@RequestParam(name = "id") Integer id){
return userService.getUserById(id);
}
}
五、测试结果:
①查询所有User:
②根据id查询User
③条件查询,基于注解实现SQL查询
测试验证OK!