ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mybaits-plus-注解和查询

2022-08-29 11:03:54  阅读:158  来源: 互联网

标签:queryWrapper QueryWrapper void userMapper Mybaits plus user new 注解


Springboot数据库连接:mysql 8及以上版本: com.mysql.cj.jdbc.Driver   以下版本:去掉cj

 MyBatisPlus

Annotation( 注解)  extension(扩展)  generation(代码生产器)

运行原理:

 首先通过 Entity(实体)也就是平时所说的pojo  进行自动扫描 (Scan Entity)

然后通过反射机制 (Reflection extraction)和 类名和实体自动生成项目中的绝大数代码

最典型的是持久层的增删改查 和业务层的基本增删改查 --通过反射机制和java 实体类的扫描

 

常用注解:
@TableName(value=”t_user”); 如果我们不定的情况下 默认用类名 当表名

可是如果我们的表名改了,又不用注解 则mybaits-plus框架中的基本查询方法不可用;

因为基础方法是通过反射机制进行查询的--反射过后的表名是user在运行时动态产生

如果我们的表改了,没有用到注解@Table指定表的话 **.xml 里面的表结构是可以改为对应的;

可是动态产生的就会报表不存在;

@TableLogic 逻辑删除

分页插件功能: 1:添加配置类  创建config包,

 

乐观锁原理:更新版本的控制

版本号对比 --查找或者更新的时候 用版本号   1:在实体类中添加vension              2:添加乐观锁插件

 条件构造器:

查询功能 或者删除功能 都可以

 

//查询指定数据 只需要name 字段--select 配合selectMaps一起使用
    @Test
    public void seletNameByQueryWrapper(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("name","age");
        //缺陷--返回时 非需要查询字段是null
        List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }
    //lambaQuery
    @Test
    public void seletBylambaQuery(){
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.eq(User::getName,"ly66");
        List<User> users = userMapper.selectList(lambdaQueryWrapper);
        users.forEach(System.out::println);
    }
    //查询姓名有ly且 (年龄小于18 或者email含有ly)的用户 更新数据为name ly666,年龄18
    @Test //方法一:
    public void updateByQueryWrapper(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("name","ly")
                .and(i->i.lt("age",18).or().like("email","ly"));
        User user = new User();
        user.setName("ly666");
        user.setAge(18);
        int count = userMapper.update(user, queryWrapper);
        System.out.println(count);
    }
    //方法二:
    @Test
    public void updateByUpdateWrapper(){
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("age",20)
                .set("name","ly666")
                .like("name","ly")
                .and(el->el.lt("age",18).or().like("email","ly"));
//        userMapper.update(null,updateWrapper);
        //如果有自动填充的字段比如 create_time等
        User user = new User();
        userMapper.update(user,updateWrapper);
    }
    //删除指定数据
    public void deleteByQueryWrapper(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("email","1@qq.com");
        userMapper.delete(queryWrapper);
    }
    //获取指定数据
    public void queryWrapper(){
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByDesc("age").orderByDesc("id");
        List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }

 

标签:queryWrapper,QueryWrapper,void,userMapper,Mybaits,plus,user,new,注解
来源: https://www.cnblogs.com/liyanxi/p/16634787.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有