springboot整合mp
一、maven坐标
<!-- 驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
二、yml配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_student?serverTimezone=GMT%2b8
username: root
password: root
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #日志输出
# mapper-locations: classpath:mapper/*.xml #扫描所有mybatis的xml文件
三、mapper层
extends BaseMapper<T>
案例:
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.luckysix.studentbackend.pojo.Student;
import org.apache.ibatis.annotations.Mapper;
/**
* @description userMapper
* @author luckysix
* @date 2022-11-25
*/
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}
四、service层
extends IService<T>
案例:
import com.baomidou.mybatisplus.extension.service.IService;
import com.luckysix.studentbackend.pojo.Student;
/**
* @author luckysix
* @description Student服务层
* @date 2022-11-25
*/
public interface StudentService extends IService<Student> {
}
实现类
- 继承ServiceImpl<…Mapper, T> 实现父接口 …Service
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.luckysix.studentbackend.mapper.StudentMapper;
import com.luckysix.studentbackend.pojo.Student;
import org.springframework.stereotype.Service;
/**
* @ClassName StudentServiceImpl
* @Author Lucky-Six
* @Date 2022/11/25 11:50
* @Version 1.0.0
*/
@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService {
}
五、常用配置类(分页拦截器)
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//命名规则: 类似于配置文件 则把这个类称之为"配置类"一般Config结尾
@Configuration //标识我是一个配置类(代替之前的xml文件)
public class MybatisPlusConfig {
//铺垫: xml中通过标签管理对象,将对象交给Spring容器管理. <bean>
//配置类: 将方法的返回值交给Spring容器管理 @Bean注解.
/**
* 关于MP分页规则说明
* 规则: 需要设定一个拦截器.将分页的Sql进行动态的拼接.
* Sql: 规则现在的Sql都支持Sql92标准!!!! 设计理念不同
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MARIADB));
return interceptor;
}
}