为了账号安全,请及时绑定邮箱和手机立即绑定

MyBatis-Plus入门

难度高级
时长 4小时 0分
学习人数
综合评分9.57
101人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.6 逻辑清晰
  • http://img1.sycdn.imooc.com//5e26953d0001d62106550250.jpg

    http://img1.sycdn.imooc.com//5e269597000140f506890318.jpg13333333333333333

    查看全部
  • selectByMap()

    http://img1.sycdn.imooc.com//5e2692da0001ce2604350173.jpg

    查看全部
    0 采集 收起 来源:普通查询

    2020-01-21

  • selectBatchIds(@Param(Constants.COLLECTION)Collection<? extends Serializable> idList);
    根据id集合获取对象集合list
    Arrays.asList(id1,id2)

    将list集合参数进行forEach输出:
    userList.forEach(System.out::println);

    查看全部
    0 采集 收起 来源:普通查询

    2020-01-21

  • selectById(...id) 根据主键获取实体

    查看全部
    0 采集 收起 来源:普通查询

    2020-01-21

  • @TableField(exist=false)  //exist=false表示数据库字段并无该属性
    private String remark;

    查看全部
  • @Transient 注解的实体类字段不参数序列化过程

    查看全部
  • 其它字段指定数据库中对应名称
    @TableField("name")//数据库中叫name
    private String realName;

    查看全部
    0 采集 收起 来源:常用注解

    2020-01-21

  • @TableId 注解到实体类的表id字段 可以取代表中id主键不叫id的别名的
    对应驼峰写法 如 实体类 memberId, 表中 member_id

    查看全部
    0 采集 收起 来源:常用注解

    2020-01-21

  • @TableName 在实体类执行表名 别名

    查看全部
    0 采集 收起 来源:常用注解

    2020-01-21

  • zzzccc
    查看全部
    0 采集 收起 来源:分页查询

    2020-01-15

  • asdasdagasdfgadf
    查看全部
    0 采集 收起 来源:分页查询

    2020-01-15

  • asdasda

    查看全部
    0 采集 收起 来源:分页查询

    2020-01-15

  • package com.mp;
    
    import com.baomidou.mybatisplus.core.conditions.Wrapper;
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.core.toolkit.Wrappers;
    import com.mp.dao.UserMapper;
    import com.mp.entity.User;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * @Description
     * @auther mohuani
     * @create 2019-12-25 11:37
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class RetrieveTest {
    
        @Autowired
        private UserMapper userMapper;
    
        @Test
        public void selectById() {
            User user = userMapper.selectById(1088250446457389058L);
            System.out.println(user);
        }
    
        @Test
        public void selectBatchIds() {
            List<Long> list = Arrays.asList(1088248166370832385L, 1094590409767661570L, 1209509417456001025L);
            List<User> userList = userMapper.selectBatchIds(list);
            userList.forEach(System.out::println);
        }
    
        @Test
        public void selectByMap() {
            Map<String, Object> columnMap = new HashMap<>();
            columnMap.put("name", "李艺伟");
            columnMap.put("age", 28);
            List<User> userList = userMapper.selectByMap(columnMap);
            userList.forEach(System.out::println);
        }
    
        /**
         * 1、名字中包含雨并且年龄小于40
         *     name like '%雨%' and age<40
         */
        @Test
        public void selectByWrapper() {
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.like("name", "雨").lt("age", 40);
    
            List<User> userList = userMapper.selectList(queryWrapper);
            userList.forEach(System.out::println);
        }
    
        /**
         * 2、名字中包含雨年并且龄大于等于20且小于等于40并且email不为空
         *    name like '%雨%' and age between 20 and 40 and email is not null
         */
        @Test
        public void selectByWrapper2() {
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.like("name", "雨").between("age" ,20 ,40).isNotNull("email");
    
            List<User> userList = userMapper.selectList(queryWrapper);
            userList.forEach(System.out::println);
        }
    
        /**
         * 3、名字为王姓或者年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列
         *    name like '王%' or age>=25 order by age desc,id asc
         */
        @Test
        public void selectByWrapper3() {
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.likeRight("name", "王").or().gt("age", 25).orderByDesc("age").orderByAsc("id");
    
            List<User> userList = userMapper.selectList(queryWrapper);
            userList.forEach(System.out::println);
        }
    }


    查看全部
  • 一、查询需求

    1、名字中包含雨并且年龄小于40

           name like '%雨%' and age<40

    2、名字中包含雨年并且龄大于等于20且小于等于40并且email不为空

       name like '%雨%' and age between 20 and 40 and email is not null

    3、名字为王姓或者年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列

       name like '王%' or age>=25 order by age desc,id asc

    4、创建日期为2019年2月14日并且直属上级为名字为王姓

          date_format(create_time,'%Y-%m-%d')='2019-02-14' and manager_id in (select id from user where name like '王%')

    5、名字为王姓并且(年龄小于40或邮箱不为空)

        name like '王%' and (age<40 or email is not null)

    6、名字为王姓或者(年龄小于40并且年龄大于20并且邮箱不为空)

        name like '王%' or (age<40 and age>20 and email is not null)

    7、(年龄小于40或邮箱不为空)并且名字为王姓

        (age<40 or email is not null) and name like '王%'

    8、年龄为30、31、34、35

        age in (30、31、34、35) 

    9、只返回满足条件的其中一条语句即可

    limit 1

    二、select中字段不全部出现的查询

    10、名字中包含雨并且年龄小于40(需求1加强版)

    第一种情况:select id,name

                      from user

                      where name like '%雨%' and age<40

    第二种情况:select id,name,age,email

                      from user

                      where name like '%雨%' and age<40

    三、统计查询:

    11、按照直属上级分组,查询每组的平均年龄、最大年龄、最小年龄。

    并且只取年龄总和小于500的组。

    select avg(age) avg_age,min(age) min_age,max(age) max_age

    from user

    group by manager_id

    having sum(age) <500


    查看全部
  • 一、查询需求

    1、名字中包含雨并且年龄小于40

           name like '%雨%' and age<40

    2、名字中包含雨年并且龄大于等于20且小于等于40并且email不为空

       name like '%雨%' and age between 20 and 40 and email is not null

    3、名字为王姓或者年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列

       name like '王%' or age>=25 order by age desc,id asc

    4、创建日期为2019年2月14日并且直属上级为名字为王姓

          date_format(create_time,'%Y-%m-%d')='2019-02-14' and manager_id in (select id from user where name like '王%')

    5、名字为王姓并且(年龄小于40或邮箱不为空)

        name like '王%' and (age<40 or email is not null)

    6、名字为王姓或者(年龄小于40并且年龄大于20并且邮箱不为空)

        name like '王%' or (age<40 and age>20 and email is not null)

    7、(年龄小于40或邮箱不为空)并且名字为王姓

        (age<40 or email is not null) and name like '王%'

    8、年龄为30、31、34、35

        age in (30、31、34、35) 

    9、只返回满足条件的其中一条语句即可

    limit 1

    二、select中字段不全部出现的查询

    10、名字中包含雨并且年龄小于40(需求1加强版)

    第一种情况:select id,name

                      from user

                      where name like '%雨%' and age<40

    第二种情况:select id,name,age,email

                      from user

                      where name like '%雨%' and age<40

    三、统计查询:

    11、按照直属上级分组,查询每组的平均年龄、最大年龄、最小年龄。

    并且只取年龄总和小于500的组。

    select avg(age) avg_age,min(age) min_age,max(age) max_age

    from user

    group by manager_id

    having sum(age) <500


    查看全部

举报

0/150
提交
取消
课程须知
1、有Java开发基础,了解Lambda表达式; 2、至少会使用一种关系型数据库; 3、熟悉Maven; 4、熟悉SpringBoot; 5、最好熟悉MyBatis。
老师告诉你能学到什么?
1、了解MP的基本原理及框架特点; 2、掌握MP通用Mapper的使用; 3、掌握MP常用注解的使用; 4、掌握ActiveRecord模式的使用; 5、掌握MP多种主键策略的使用; 6、掌握MP常用配置的使用; 7、掌握MP通用Service的使用; 8、掌握MP在某些应用场景下的具体使用方式。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!