SpringBoot基础-整合MyBatis-Plus

创建项目

创建Spring Boot项目,引入SpringMVC依赖

 创建好之后,项目整体结构如下:

Spring Boot整合MyBatis-Plus

①打开pom.xml文件,把mybatis依赖注释掉或者删除掉,引入mybatis-plus依赖放到dependencies标签里面,然后刷新依赖

        <!--mybatis-plus核心依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

②打开application.yml,把mybatis配置注释掉或者删除掉,引入mybatis-plus配置

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  typeAliasesPackage: com.qcbt.entity  #存放实体类的目录路径
  mapperLocations: classpath:mapper/*.xml
  # 全局配置id自增  =>
  global-config:
      db-config:
        id-type: auto

MyBatis-Plus引入完成

③引入Lombok依赖,使代码更加简洁,刷新依赖

        <!--lombok核心依赖-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.14</version>
        </dependency>

添加分页插件 

①在com.qcby包下创建config.MybatisPlusConfig类,添加@Configuration注解

@Configuration
public class MybatisPlusConfig {
    // 最新版
    @Bean  // <bean id=""/>
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

实现分页

①数据库创建User表,添加数据

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户名',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

②在entity包下创建User实体类

@Data 
//Lombok提供的注解,写上这个注解之后,不用写get,set,toString方法
@TableName("user")
//mybatis-plus提供的注解,写这个实体类对应的表名
public class User {
    private Long id;
    private String name;
}

③在mapper文件下创建UserMapper.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.qcby.mapper.UserMapper">
    <select id="findAll" resultType="com.qcby.entity.User">
        select * from user
    </select>
</mapper>

④在mapper包下创建UserMapper接口,继承BaseMapper类,定义findAll方法

@Mapper
public interface UserMapper extends BaseMapper<User> {
    public IPage<User> findAll(Page<User> page);
}

⑤在service包下创建UserService接口,继承IService类,定义findAll方法

public interface UserService extends IService<User> {
    public IPage<User> findAll(Page<User> page);
}

⑥在service.impl包下创建UserServiceImpl类,继承ServiceImpl类,实现UserService 接口,加上@Service注解

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
    @Resource
    private UserMapper userMapper;

    @Override
    public IPage<User> findAll(Page<User> page){
        return this.userMapper.findAll(page);
    }
}

⑦在controller包下创建UserController类,加上@RestController注解

@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserServiceImpl service;

    @RequestMapping("findAll")
    public IPage<User> findAll(Integer pageNum, Integer pageSize){
        //分页实现
        Page<User> page=new Page<>(pageNum,pageSize);
        return this.service.findAll(page);
    }
}

⑧在SpringBootProjectApplication 类上,加上@MapperScan("com.qcby.mapper")注解

@MapperScan("com.qcby.mapper")
@SpringBootApplication
public class SpringBootProjectApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootProjectApplication.class, args);
    }

}

⑨浏览器访问  http://localhost:8080/user/findAll?pageNum=1&pageSize=3  ,访问user表中的前3条数据,结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_46899412/article/details/123487539