Springboot整合Mybatis
1、创建springboot项目
2、勾选mysql驱动和web驱动
3、pom.xml导入相关依赖
<!--MyBatisPlus启动器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version> <!-- 这里修改版本号 -->
</dependency>
<!--
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.5.3.1</version>
</dependency>
-->
<!--数据库驱动-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!--lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--单元测试工具-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
注意
mybatis - plus - boot - starter和mybatis - plus这两个依赖在功能上有一定的重叠,但在 Spring Boot 项目中,它们的角色有所不同,并且不是绝对缺一不可,具体取决于你的项目需求。
mybatis - plus - boot - starter依赖
这是专门为 Spring Boot 项目设计的起步依赖。它内部包含了许多自动配置相关的内容,可以让 MyBatis - Plus 与 Spring Boot 更好地集成。
当你在 Spring Boot 项目中引入mybatis - plus - boot - starter时,Spring Boot 会自动进行一系列的配置,例如自动配置数据源、MyBatis - Plus 的核心组件等。它会根据你的配置文件(如application.properties或application.yml)自动设置合适的参数,极大地简化了在 Spring Boot 环境下使用 MyBatis - Plus 的过程。
如果你正在开发一个 Spring Boot 应用并且想要快速集成 MyBatis - Plus,这个依赖是非常关键的。
mybatis - plus依赖
mybatis - plus这个依赖包含了 MyBatis - Plus 的核心功能,如增强的 CRUD 操作、条件构造器、代码生成器等基础功能组件。
在非 Spring Boot 项目或者你想手动配置 MyBatis - Plus 与 Spring(非 Spring Boot)的集成时,这个依赖是必不可少的。但在 Spring Boot 项目中,如果你已经引入了mybatis - plus - boot - starter,很多情况下mybatis - plus依赖中的内容已经被包含或者自动配置了。
4、配置application.yml文件
#服务器端口号
server:
port: 8080
spring:
#数据库连接驱动
datasource:
url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
#配置MyBatisPlus
mybatis-plus:
#配置识别Mybatisplus的XML文件
mapper-locations: classpath:mapper/*.xml
#配置包名别名
type-aliases-package: com.mes.pojo
#配置sql打印
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
5、创建对应包名
6、创建pojo类
package com.mes.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Users {
private Integer id;
private String name;
private String password;
}
7、创建mapper,并且继承BaseMapper接口
package com.mes.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.mes.pojo.Users;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
public interface UsersMapper extends BaseMapper<Users> {
public List<Users> getAll();
}
@Mapper表示呗spring容器接管 是一个mapper类
8、创建service和对应的serviceImpl类
service继承IService接口
serviceImpl继承ServiceImpl实现类并且实现刚才创建的service
package com.mes.service;
//import com.baomidou.mybatisplus.service.IService;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.pojo.Users;
import java.util.List;
public interface UsersService extends IService<Users> {
public List<Users> getAll();
public List<Users> getAllUsers();
}
package com.mes.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
//import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.mes.mapper.UsersMapper;
import com.mes.pojo.Users;
import com.mes.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service
public class UsersServiceImpl extends ServiceImpl<UsersMapper, Users> implements UsersService {
@Autowired
UsersMapper usersMapper;
@Override
public List<Users> getAll() {
return usersMapper.getAll();
}
@Override
public List<Users> getAllUsers(){
return usersMapper.selectList(null);
}
}
9、创建mapper.xml文件在resources目录下
<?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.mes.mapper.UsersMapper">
<select id="getAll" resultType="Users">
select * from users;
</select>
</mapper>
这里是识别xml文件的配置路径
10、写一个Controller测试
package com.mes.controller;
import com.mes.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UsersService usersService;
@GetMapping("/list")
public String listUser() {
return usersService.getAll().toString();
}
@GetMapping("/list2")
public String listUser2() {
return usersService.getAllUsers().toString();
}
}
启动成功去访问localhost:8080/user/list 看下有没有数据