Mybatis-Plus简单增删改查

1.实体类中设置属性

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
        @TableId(type = IdType.ASSIGN_ID)//必须数据库也是递增
        private Long id;
        //如果列名属性不同
        @TableField(value = "u_name")
        private String name;
        private Integer age;
        private String email;
        @TableLogic
        private Integer deleted;
}

测试:在Tests类中

    /**
     * 查询数据
     */
    @Test
    public void selectId(){
        //根据id查询信息
        User user=userMapper.selectById(1);
        System.out.println(user);
    }
 	/**
     * 新增信息
     */
@Test
    public void testInsert(){
        //雪花算法针对的分布式id生成策略
        User user = new User(null, "旺旺", 18, "121@qq.com", 0);
        int row = userMapper.insert(user);
        System.out.println(row);
    }
    
    /**
     * 逻辑删除
     */
    @Test
    public void testDelete(){
        int i = userMapper.deleteById(4);
        System.out.println(i);
    }

	/**
     * 修改数据
     */
    @Test
    public void testUpdate(){
        User user = new User(4L, "小蛮鹅", 18, "121@qq.com", 0);
        userMapper.updateById(user);
        System.out.println();
    }

注意:

	/**
     * 逻辑删除:只对自动注入的sql起效
     * 插入: 不作限制
     * 查找: 追加where条件过滤掉已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段
     * 更新: 追加where条件防止更新到已删除数据,且使用 wrapper.entity 生成的where条件会忽略该字段
     * 删除: 转变为 更
     */

2.修改/新增时:时间自动填充

		//在实体类相应的属性字段上添加一下注解
		@TableField(fill = FieldFill.INSERT) //只有在填充的时候该字段才会自动填充
        private Data createTime;
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Data updateTime;

3.创建一个自动装配类

@Configuration //表示该类为配置类
public class MybatisPlusConfig implements MetaObjectHandler {
        @Override
        public void insertFill(MetaObject metaObject) {
            /**
             * 为那个字段自动填充
             */
            this.strictInsertFill(metaObject, "createTime", Date.class,new Date()); // 起始版本 3.3.0(推荐使用)
            this.strictInsertFill(metaObject, "updateTime", Date.class,new Date()); // 起始版本 3.3.0(推荐使用)
            }
        @Override
        public void updateFill(MetaObject metaObject) {
            this.strictInsertFill(metaObject, "updateTime", Date.class,new Date()); // 起始版本 3.3.0(推荐使用)
            }
      }

4.测试

/**
     * 新增数据
     */
    @Test
    public void testInsert(){
        //雪花算法针对的分布式id生成策略
        User user = new User(null, "旺旺", 18, "121@qq.com", 0);
        int row = userMapper.insert(user);
        System.out.println(row);
    }

    /**
     * 修改数据
     */
    @Test
    public void testUpdate(){
        User user = new User(5L, "仔仔", 19, "121@qq.com", 0);
        userMapper.updateById(user);
        System.out.println();
    }
	/**
     * 条件查询
     */
    @Test
    public void testSelectByCondication(){
        //warpper:条件的包装类
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.between("age",12,18);
        wrapper.or();
        wrapper.like("u_name","徐");//模糊查询
        wrapper.orderByDesc("age");//通过年龄降序排序
        wrapper.select("count(*)");//统计数据条数
        wrapper.groupBy("u_name");//通过名字分组
        List<User> users=userMapper.selectList(wrapper);
        System.out.println(users);
    }
	/**
     * 分页查询,而且必须配置分页插件
     */
    @Test
    public void testSelectByPage(){
        /**
         * page:但钱页码  每页显示的条数
         */
        Page<User> page = new Page<>(3, 4);
        Page<User> page1 = userMapper.selectPage(page, null);
        System.out.println("当前的总页码:"+page1.getPages());
        System.out.println("总条数:"+page1.getTotal());
        System.out.println("当前页的记录:"+page1.getRecords());
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值