Spring Boot整合Mybatis-plus+自定义条件分页
导入依赖
Mybatis-plus的依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
如果配置文件在src目录下加入
<resources>
<resource>
<directory>src/main/java</directory>
<filtering>false</filtering>
<includes>
<include>**/mapper/*.xml</include>
</includes>
</resource>
</resources>
配置yml文件
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接口
启动类进行扫描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继承BaseMapper<实体类>
public interface UserInfoDao extends BaseMapper<UserInfo>{
}
第四步,自定义分页使用
在配置文件中注册
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,@Param("user")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="user.age!=null">
where age = #{user.age,jdbcType=INTEGER}
</if>
</select>
</mapper>
``
简单的自定义条件分页也就完成了。
注意:如果类名和实体类名不对应需要写@Table(“表名”) 如果增加的话 可以在id加入@TableId(type=IdType.AUTO)
今天总结也就到这里,如有错误,欢迎大家的指出,一定及时改正。
Mybatis-Plus官网:https://mp.baomidou.com/