一、引入依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</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.5.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
二、写配置类 和配置文件
2.1 配置文件
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath:mapper/*.xml
2.2 配置类
@Configuration
@MapperScan("com.yan.mapper")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return mybatisPlusInterceptor;
}
}
三、建立User实体类
@Data // set get 方法
@AllArgsConstructor // 有参构造
@NoArgsConstructor // 无参构造
@ToString // toString方法
@TableName("user") // @TableName 标识实体类对应的表名
public class User {
@TableId(value = "id") // 对应表结构中的主键字段 对应的雪花算法 // 表明id就是主键字段对应的属性
private Long id;
@TableField(value = "name") //表结构中的name属性和name属性对应
private String name;
private Integer age;
private String email;
@TableField(value = "is_deleted")
// @TableLogic是用来完成 `逻辑删除`操作的
@TableLogic(value = "0",delval = "1")
private Integer isDeleted;
}
四、建立User接口
/**
* 继承 BaseMapper 其中的泛型指定返回值类型
*/
public interface UserMapper extends BaseMapper<User> {
public int addUser(User user);
}
五、测试
/*分页查询测试*/
@Test
void queryPage() {
Page<User> page = new Page<>(1,5);
Page<User> userPage = userMapper.selectPage(page, null);
System.out.println("userPage.getCurrent() = " + userPage.getCurrent());
System.out.println("userPage.getSize() = " + userPage.getSize());
System.out.println("userPage.getTotal() = " + userPage.getTotal());
System.out.println("userPage.getPages() = " + userPage.getPages());
System.out.println("userPage.hasPrevious() = " + userPage.hasPrevious());
System.out.println("userPage.hasNext() = " + userPage.hasNext());
}
六、sql 数据
/*
Navicat MySQL Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 80013
Source Host : localhost:3306
Source Schema : mybatis_plus
Target Server Type : MySQL
Target Server Version : 80013
File Encoding : 65001
Date: 17/11/2023 20:26:26
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`name` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名',
`age` int(11) NULL DEFAULT NULL COMMENT '年龄',
`email` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱',
`is_deleted` int(1) NULL DEFAULT 0,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'Jone', 18, 'test1@baomidou.com', 1);
INSERT INTO `user` VALUES (2, 'Jack', 20, 'test2@baomidou.com', 0);
INSERT INTO `user` VALUES (3, 'Tom', 25, 'bobo@qq.com', 0);
INSERT INTO `user` VALUES (4, 'Sandy', 21, 'test4@baomidou.com', 0);
INSERT INTO `user` VALUES (5, 'Billie', 24, 'test5@baomidou.com', 0);
INSERT INTO `user` VALUES (1725478656607674370, 'yan', NULL, '12225@qq.com', 0);
SET FOREIGN_KEY_CHECKS = 1;