社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
上一篇发布的是springboot整合mybatis和mybatis的分页插件,这次就直接上手整合mybatis-Plus。
spring-boot-starter-web ,springmvc的依赖;
mybatis-spring-boot-starter ,springboot整合mybatis依赖;
mysql-connector-java ,springboot整合mysql依赖;
lombok ,springboot整合实体类的getsettostring等方法依赖;
spring-boot-starter-test ,单元测试依赖;
org.springframework.boot spring-boot-starter-web <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<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>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
如果将xml文件放入src包中需要再定义
<resources>
<resource>
<directory>src/main/java</directory>
<filtering>false</filtering>
<includes>
<include>**/mapper/*.xml</include>
</includes>
</resource>
</resources>
进行数据库的连接,和Mybatis-Plus的路径扫描控制台打印sql语句等等。
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:com/bdqn/mapper/*.xml
启动类进行扫描mapper接口
package com.xxx;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.xxx.dao")
public class Demo01MybatisplusApplication {
public static void main(String[] args) {
SpringApplication.run(Demo01MybatisplusApplication.class, args);
}
}
在Mapper接口中继承BaseBaseMapper类,这是Mybatis-Plus中的内置类,有很多操作数据库的方法
进行继承,即可使用方法。
package com.xxx.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xxx.entity.User;
public interface UserDao extends BaseMapper<User> {
}
最终在Service实现类中使用相应方法。
在配置文件中注册
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
在实现层进行操作,万变不离其宗,传入当前页数和当页条数
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public IPage getPageAllByUser() {
Page page = new Page(1,2);
return userDao.getPageAllByUser(page);
}
}
增加条件搜索分页
Service层
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public IPage getPageAllByUser(User user) {
//分页处理,显示第pageNum页的pageSize条数据
Page page = new Page(1,2);
return userDao.getPageAllByUser(page,user);
}
}
Mapper层
public interface UserDao extends BaseMapper<User> {
IPage getPageAllByUser(Page page,User user);
}
xml文件
<?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.bdqn.dao.UserDao">
<select id="getPageAllByUser" resultType="com.bdqn.entity.User">
select * from t_user
<if test="age!=null">
where age = #{age,jdbcType=INTEGER}
</if>
</select>
</mapper>
简单的自定义条件分页也就完成了。
springboot整合Mybatis-Plus也就完成了,我在这里也是参考了Mybatis-Plus的中文官网,官网中讲解的很清晰,也有很多的注解和内置方法,以上也是本人的自我理解,如有不当之处,请大家包含,下次我要整理的是一个概念: 读写分离
。
Mybatis-Plus官网:https://mp.baomidou.com/
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!