mybatis-plus基础操作

代码生成:https://blog.csdn.net/qq_41835813/article/details/106993101

官网:https://mp.baomidou.com/guide/

pom和yml都在代码生成的博客

 

主键生成策略

自动填充

bean

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="User对象", description="InnoDB free: 10240 kB")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ID_WORKER)
    private Long id;

    private String name;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date gmtCreate;

    @ApiModelProperty(value = "修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date gmtModified;


}ied;

配置

@Component
public class MyMeta implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("gmtCreate",new Date(),metaObject);
        this.setFieldValByName("gmtModified",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("gmtModified",new Date(),metaObject);
    }
}

==>  Preparing: INSERT INTO user ( id, name, gmt_create, gmt_modified ) VALUES ( ?, ?, ?, ? ) 
==> Parameters: 1277071425278091266(Long), 强月城(String), 2020-06-28 10:48:49.284(Timestamp), 2020-06-28 10:48:49.284(Timestamp)
<==    Updates: 1

 

乐观锁

    @TableField(fill = FieldFill.INSERT)
    @Version
    private Integer version;

配置 

@Configuration
@EnableTransactionManagement
public class MybatisPlusConfig {
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }
}
this.setFieldValByName("version",1,metaObject);
    @Test
    void update(){
        //乐观锁要先查改
        User user = service.selectUser(1277073456151666690L);
        user.setName("强月城");
        service.updateUser(user);
    }

==>  Preparing: SELECT id,name,gmt_create,gmt_modified,version FROM user WHERE id=? 
==> Parameters: 1277073456151666690(Long)
<==    Columns: id, name, gmt_create, gmt_modified, version
<==        Row: 1277073456151666690, qyc, 2020-06-28 10:56:53.0, 2020-06-28 11:03:18.0, 1
<==      Total: 1

 

==>  Preparing: UPDATE user SET name=?, gmt_create=?, gmt_modified=?, version=? WHERE id=? AND version=? 
==> Parameters: 强月城(String), 2020-06-28 10:56:53.0(Timestamp), 2020-06-28 11:07:29.96(Timestamp), 2(Integer), 1277073456151666690(Long), 1(Integer)
<==    Updates: 1

 

分页

配置

 @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }

service    null:条件为空

    public Page<User> page(int num, int size) {
        Page<User> page = new Page<>(num,size);
        userMapper.selectPage(page,null);
        return page;
    }

 

page.getSize() = 2
page.getTotal() = 4
page.getPages() = 2
User(id=1277073456151666690, name=强月城, gmtCreate=Sun Jun 28 10:56:53 CST 2020, gmtModified=Sun Jun 28 11:07:29 CST 2020, version=2)
User(id=1277077755846000641, name=qyc1, gmtCreate=Sun Jun 28 11:13:58 CST 2020, gmtModified=Sun Jun 28 11:13:58 CST 2020, version=1) 

条件 

    public Page<User> page(int num, int size) {
        Page<User> page = new Page<>(num,size);
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.like("name","q");
        userMapper.selectPage(page,wrapper);
        return page;
    }

 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6cd64b3f]
page.getSize() = 2
page.getTotal() = 3
page.getPages() = 2
User(id=1277077755846000641, name=qyc1, gmtCreate=Sun Jun 28 11:13:58 CST 2020, gmtModified=Sun Jun 28 11:13:58 CST 2020, version=1)
User(id=1277078409368907778, name=qyc2, gmtCreate=Sun Jun 28 11:16:34 CST 2020, gmtModified=Sun Jun 28 11:16:34 CST 2020, version=1)

 

 逻辑删除

@TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer deleted;

0未删  1已删 

this.setFieldValByName("deleted",0,metaObject);
 @Test
    void deleted(){
        userMapper.deleteById(1277087307123429377L);
    }

--------------

 

 

条件构造器

https://mp.baomidou.com/guide/wrapper.html#alleq

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis基础上只做增强不做改变,为简化开发、提高效率而生。使用原生的Mybatis编写持久层逻辑时,所需要的代码是比较繁琐的,需要定义Mapper接口和Mapper.xml文件,每一个方法都需要编写对应的sql语句,会存在很多大量的重复工作,使用MP之后,对通用的方法做了高度的抽取,避免了很多重复工作,可以非常快速的实现了单表的各种增、删、改、查操作。除此之外,MP还提供了其他的高级功能,如:枚举、插件、ActiveRecord、SQL注入等。 本课程全面讲解了Mybatis-Plus框架的使用,从快速入门到原理分析再到插件的应用。每一个知识点都有案例进行演示学习,最终通过学习你将全面掌握MP的使用,从而使Mybatis的的开发更加的高效,达到事半功倍的效果。 适应人群 有一定的Java以及Mybatis框架的基础。 从0开始全面讲解Mybatis-Plus框架 l 快速入门 n Mybatis + MP 整合 n Spring + Mybatis + MP 整合 n SpringBoot + Mybatis + MP 整合 n 通用CRUD的全面讲解 n 配置 l 高级用法 n 条件构造器 n Oracle 主键Sequence n 通用枚举n ActiveRecord n 逻辑删除 l 插件 n 执行分析插件 n 性能分析插件 n 乐观锁插件 主讲内容 章节一:快速入门 1. Mybatis-Plus简介 2. 快速入门 3. 通用CRUD 4. 配置 5. 条件构造器 章节二:进阶 1. ActiveRecord 2. Oracle 主键Sequence 3. 插件 章节三:高级应用 1. Sql 注入器 2. 自动填充功能 3. 逻辑删除 4. 通用枚举 5. 代码生成器 6. MybatisX 快速开发插件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值