
文章插图
前言官网:Mybatis-plus官方文档 简化 MyBatis !
创建数据库数据库名为mybatis_plus
创建表创建user表
DROP TABLE IF EXISTS user;CREATE TABLE user(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id));INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');注意:-- 真实开发中往往都会有这四个字段,version(乐观锁)、deleted(逻辑删除)、gmt_create(创建时间)、gmt_modified(修改时间)初始化项目
使用SpringBoot器 初始化!导入依赖<!-- 数据库驱动 --><dependency><groupId>MySQL</groupId><artifactId>mysql-connector-JAVA</artifactId></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!-- mybatis-plus --><!-- mybatis-plus 是自己开发,并非官方的! --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency>注意:尽量不要同时导入 mybatis 和 mybatis-plus!避免版本的差异造成无法预知的问题 。连接数据库创建Application.yml
spring:profiles:active: devdatasource:# 驱动不同 mysql 5com.mysql.jdbc.Driver#mysql 8com.mysql.cj.jdbc.Driver、需要增加时区的配置serverTimezone=GMT%2B8url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: root业务代码实体类@Data@AllArgsConstructor@NoArgsConstructorpublic class User {private Long id;private String name;private Integer age;private String email;}mapper接口import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.kuang.pojo.User;import org.springframework.stereotype.Repository;// 在对应的Mapper上面继承基本的类 BaseMapper@Repository // 代表持久层public interface UserMapper extends BaseMapper<User> {// 所有的CRUD操作都已经编写完成了}注意点,我们需要在主启动类上去扫描我们的mapper包下的所有接口@MapperScan(“com.kwhua.mapper”)
测试
@SpringBootTestclass MybatisPlusApplicationTests {// 继承了BaseMapper,所有的方法都来自己父类// 我们也可以编写自己的扩展方法!@Autowiredprivate UserMapper userMapper;@Testvoid contextLoads() {// 参数是一个 Wrapper,条件构造器,这里我们先设置条件为空,查询所有 。List<User> users = userMapper.selectList(null);users.forEach(System.out::println); }}所有数据输出
文章插图
配置日志我们所有的sql现在是不可见的,我们希望知道它是怎么执行的,所有我们要配置日志的输出
application.yml文件添加日志配置
#配置日志mybatis-plus:configuration:log-impl: org.Apache.ibatis.logging.stdout.StdOutImpl查看执行sql的日志信息
文章插图
三.Mybatis-plus的CRUD1.插入操作
// 测试插入@Testpublic void testInsert(){User user = new User();user.setName("kwhua_mybatis-plus_insertTest");user.setAge(15);user.setEmail("310697723@qq.com");int result = userMapper.insert(user); // 帮我们自动生成idSystem.out.println(result); // 受影响的行数System.out.println(user); // 看到id会自动填充 。}
文章插图
看到id会自动填充 。数据库插入的id的默认值为:全局的唯一id
主键生成策略1)主键自增
1、实体类字段上 @TableId(type = IdType.AUTO)
2、数据库id字段设置为自增!

文章插图
3、再次测试(可以看到id值比上次插入的大1)

文章插图
id的生成策略源码解释
public enum IdType {AUTO(0), // 数据库id自增NONE(1), // 未设置主键INPUT(2), // 手动输入ID_WORKER(3), // 默认的方式,全局唯一idUUID(4), // 全局唯一id uuidID_WORKER_STR(5); //ID_WORKER 字符串表示法}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Photoshop常用快捷键,photoshop各种快捷键?
- 手机启动wapi什么意思?启动WAPI什么意思?
- win10常用的几款软件
- 红茶滋味常用评语,黑茶的冲泡方式选水及茶水比例
- API的五个常见漏洞
- nginx系列:常用利用shell统计日志
- 全栈开发必备技能:构建RESTful API的13种最佳实践
- 跟常用框架SpringSecurity比 微服务到底胜在哪?
- 使用 HTTPie 进行 API 测试
- Nginx配置跳转的常用方式
