• MyBatisPlus的学习项目页面


    使用idea配置MyBatisPlus下面这个教程是可以的:

    【精选】使用IDEA配置Mybatis-Plus框架_idea mybatisplus_Yy330*的博客-CSDN博客

    MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息

    类名驼峰转下划线作为表名

    名为id的字段作为主键

    变量名驼峰转下划线作为表的字段名

    常见注解

    @TableName:用来指定表名

    @Tableld:用来指定表中的主键字段信息

    @TableField:用来指定表中的普通字段信息

    IdType枚举
    • AUTO:数据库自增长

    • INPUT:通过set方法自行输入
    • ASSIOG_ID:分配ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类为DefaultIdentifierGenerator雪花算法

    对于这个数据库表:tb_user

    使用@TableField的常见场景:

    • 成员变量名与数据库字段名不一致

    • 成员变量名以is开头,且是布尔值

    • 成员变量名与数据库关键字冲突

    • 成员变量不是数据库字段

    条件构造器

    查询出名字中带‘o’的,存款大于等于1000元的人的id,info,balance:

    SELECT id,info,balance 

    FROM user

    WHERE username LIKE "o" AND balance >=?

    void testQueryWrapper(){
        //1.构建查询条件
        QueryWrapper wrapper=new QueryWrapper()
                .selct("id","info","balance")
                .like("username","o")
                .ge("balance",1000);
        //2.查询
        List users=userMapper.selectList(wrapper);
        users.forEach(System::out::println);
    }

    其中User类是已经绑定数据库对应的user表

    更新用户名为jack的用户余额为2000

    UPDATE user

    SET balance = 2000

    WHERE username = "jack"

    void testUpdateByQueryWrapper(){
        //1.要更新的数据
        User user=new User();
        user.setBalance(2000);
        //2.更新的条件
        QueryWrapper wrapper=new QueryWrapper()
                .eq("username","jack");
        //3.执行更新
        userMapper.update(user,wrapper);
    }

     更新id为1,2,4的用户的余额,扣200.

    UPDATE user 

    SET balance = balance - 200

    WHERE id IN (1,2,4)

    void testUpdateWrapper(){
        List ids=List.of(1,2,4);
        UpdateWrapper Wrapper = new UpdateWrapper()
                .setSql("balance=balance-200")
                .in("id",ids);
        userMapper.update(null,wrapper);
    
    }

    尽量使用LambdaQueryWrapper和LambdaUpdateWrapper,避免硬编码

    void testLambdaQueryWrapper(){
        //1.构建查询条件
        LabdaQueryWrapper wrapper=new LabdaQueryWrapper()
                .selct(User::getUsername,User::getInfo,User::getBalance)
                .like(User::getUsername,"o")
                .ge(User::getBalance,1000);
        //2.查询
        List users=userMapper.selectList(wrapper);
        users.forEach(System::out::println);
    }

    Service接口

    自己写的UserService接口继承IService接口,实现类UserServiceImpl继承ServiceImpl实现类,此时就可以使用Service接口了。

    基于Restful风格实现下面的接口:

     

    多个条件的查询建议用Lambda:

    项目

  • 相关阅读:
    关于mac上如何U盘
    恩智浦i.MX8MM核心板在智能售货机产品中的应用方案-迅为电子
    以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
    ETL数据转换工具类型与适用场景
    【英语:语法基础】B2.核心语法-动词
    Maika 与越南童模们受邀请参加中国上海时装周 hanakimi 品牌开幕
    基于JAVA气候分析平台计算机毕业设计源码+数据库+lw文档+系统+部署
    PC_寻址方式
    Spring Webflux 后端处理前端请求的 4 种方式
    数据双向绑定数据(v-model)
  • 原文地址:https://blog.csdn.net/m0_73172034/article/details/133271746