MybatisPlus全套Api小解(一)
前言
如果说ssm比ssh究竟好用在哪里,快速开发体验在哪里的话,那必然就是mybatis了,如果还要找一个比mybatis更优秀的dao层框架,那必然就是他的大哥——mybatis plus。
一、MybatisPuls是什么?
MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,只是为了简化开发提交效率而存在。
官网文档地址:
https://mp.baomidou.com/guide/
MyBatis-Plus 特性:
https://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A7
二、使用步骤
1.引入依赖
<!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency> 1234567891011
2.建表示例 --> 数据自个加
CREATE TABLE `user` ( `id` bigint(20) NOT NULL COMMENT '主键ID', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年龄', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', `gmt_create` datetime DEFAULT NULL COMMENT '创建时间', `gmt_modified` datetime DEFAULT NULL COMMENT '修改时间', `version` int(11) DEFAULT NULL COMMENT '乐观锁', `deleted` int(1) unsigned zerofill DEFAULT '0' COMMENT '逻辑删除', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 1234567891011
properties配置
注:可自行忽略p6spy打印!
实体类 --> User.java
注:创建时间、修改时间、乐观锁、逻辑删除不提倡手动增加或修改
@Data @AllArgsConstructor @NoArgsConstructor public class User implements Serializable { private Long id; private String name; private Integer age; private String email; /*创建时间*/ @TableField(fill = FieldFill.INSERT) private Date gmtCreate; /*修改时间*/ @TableField(fill = FieldFill.UPDATE) private Date gmtModified; /*乐观锁*/ @Version private Integer version; /*逻辑删除*/ @TableLogic private Integer deleted; } 12345678910111213141516171819202122
Mapper --> UserMapper.java
@Repository public interface UserMapper extends BaseMapper<User> { } 123
MybatisCaseConfig.java
注:组件注册!OptimisticLockerInterceptor 在mybatispuls3.20之后弃用了
@MapperScan("com.hjc.demo.mybatiscase.mapper") @EnableTransactionManagement @Configuration public class MybatisCaseConfig { /*OptimisticLockerInterceptor 之前得插件已被弃用*/ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); /*乐观锁插件*/ interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); /*分页插件*/ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } 12345678910111213141516
MybatisCaseHandler.java
注:填充策略
@Slf4j @Component public class MybatisCaseHandler implements MetaObjectHandler { /*插入时填充策略*/ @Override public void insertFill(MetaObject metaObject) { log.info("start insertFill succeed"); this.setFieldValByName("gmtCreate",new Date(),metaObject); this.setFieldValByName("gmtModified",new Date(),metaObject); } /*修改时填充策略*/ @Override public void updateFill(MetaObject metaObject) { log.info("start updateFill succeed"); this.setFieldValByName("gmtModified",new Date(),metaObject); } } 1234567891011121314151617181920
Test.java --> 简单CURD测试
Test.java --> 多条件测试
条件构造器用法较多就不一一示例了 --> {
构造器路径:https://baomidou.com/guide/wrapper.html#abstractwrapper 1
}
总结
简单得案例就基本完成了!如需深入请进入官方文档自行学习!