• 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:

    项目

  • 相关阅读:
    计算机毕业设计Java智慧书籍的网站(源码+系统+mysql数据库+lw文档)
    js构造函数之工厂模式(学习笔记1)
    外汇天眼:外汇投资入门知识炒汇者的心理误区有哪些?
    国外Twilio 发送sms短信
    软件项目管理【UML介绍】
    深入讲解Linux上TCP的几个内核参数调优
    清华源Certificate verification failed解决办法
    MySQL——单表与多表查询练习
    C语言求数组最小值,并返回下标
    C++类与对象初步认识
  • 原文地址:https://blog.csdn.net/m0_73172034/article/details/133271746