zoukankan      html  css  js  c++  java
  • Mybatis-Plus 基础方法演示

    package com.example.demo;
    
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import com.baomidou.mybatisplus.core.toolkit.StringUtils;
    import com.baomidou.mybatisplus.core.toolkit.Wrappers;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.example.demo.dao.UserMapper;
    import com.example.demo.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;
    
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class SelectTests {
    
        @Autowired
        private UserMapper userMapper;
    
        /**
         * 根据主键来查
         */
        @org.junit.Test
        public void selectById(){
            User user =
                userMapper.selectById(1L);
            System.out.println(user);
        }
    
        /**
         * 根据多个id来查询
         */
        @Test
        public void selectByIds(){
            List<String> strings = Arrays.asList("1", "2");
            List<User> users = userMapper.selectBatchIds(strings);
            users.forEach(System.out::println);
        }
    
        /**
         * 根据map来查
         */
        @Test
        public void selectByMap(){
            //key对应数据库的列名,不是实体类中的属性名。
            Map<String,Object> map=new HashMap<>();
            map.put("name","大boss");
            map.put("age","40");
            List<User> users = userMapper.selectByMap(map);
            System.out.println(users);
        }
    
        /**
         * 查询名字中包括大并且年龄小于50
         */
        @Test
        public void selectByWrapper(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
            queryWrapper.like("name","大").lt("age",50);
    
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
        }
    
        /**
         * 查询名字中包括李并且(年龄小于30或者邮箱不为空)
         */
        @Test
        public void selectByWrapper2(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
            queryWrapper.likeRight("name","李")
                        .and(wq->wq.lt("age",40).or()
                        .isNotNull("email"));
    
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
        }
    
        /**
         * limit的使用
         */
        @Test
        public void selectByWrapper3(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
            queryWrapper.in("age",Arrays.asList(40,15,19)).last("limit 1");
    
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
        }
    
        /**
         *  select选择性得输出字段
         */
        @Test
        public void selectByWrapper4(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
            //queryWrapper.select("id","name").like("name","李").lt("age",40);
    
            //或者用下面的
            queryWrapper.select(User.class,info->!info.getColumn().equals("create_time"));
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
        }
    
        /**
         * 测试condition
         */
        @Test
        public void selectCondition(){
           String name="";
           String email="x";
           condition(name,email);
        }
    
    
    
        private void condition(String name,String email){
            QueryWrapper<User> queryWrapper=new QueryWrapper<>();
            queryWrapper.like(StringUtils.isNotBlank(name),"name",name)
                        .like(StringUtils.isNotBlank(email),"email",email);
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
        }
    
        /**
         * 实体类中的信息出现在where中,比较实用
         */
        @Test
        public void selectByWrapperEntity(){
            User whereUser=new User();
            whereUser.setAge(32);
            whereUser.setName("张三");
            QueryWrapper<User> queryWrapper=new QueryWrapper<>(whereUser);
            //上面和下面这个2选1即可
            //queryWrapper.like("name","张").lt("age",50);
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
    
        }
    
    
        @Test
        public void selectByWrapperAllEq(){
            QueryWrapper<User> queryWrapper=new QueryWrapper<>();
            Map<String,Object> params=new HashMap<String,Object>();
            params.put("name","张三");
            params.put("age",null);
            queryWrapper.allEq(params,false);//第二个参数可以去掉参数为null的情况
    
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(System.out::println);
    
        }
    
        /**
         * selectMaps的应用场景,不会让你输出的实体中有些属性为null
         * {name=张三, id=2}
         */
        @Test
        public void selectByWrapperMaps(){
            QueryWrapper<User> queryWrapper=new QueryWrapper<>();
            queryWrapper.select("id","name").like("name","张").lt("age",40);
    
            List<Map<String,Object>> users = userMapper.selectMaps(queryWrapper);
            users.forEach(System.out::println);
    
        }
    
        /**
         * Lambda可以防止误写
         * 我们写"name"的时候可能会写成"nname",但是getName写错了编译都不会通过
         */
        @Test
        public void selectByLambda(){
            LambdaQueryWrapper<User> lambdaQueryWrapper =
                Wrappers.<User>lambdaQuery();
            lambdaQueryWrapper.like(User::getName,"张").lt(User::getAge,50);
            List<User> users = userMapper.selectList(lambdaQueryWrapper);
            users.forEach(System.out::println);
    
        }
    
        /**
         * 自定义sql selectAll,对应UserMapper中的selectAll方法
         */
        @Test
        public void selectMy(){
            LambdaQueryWrapper<User> lambdaQueryWrapper =
                Wrappers.<User>lambdaQuery();
            lambdaQueryWrapper.like(User::getName,"张").lt(User::getAge,50);
            List<User> users = userMapper.selectAll(lambdaQueryWrapper);
            users.forEach(System.out::println);
    
        }
    
        /**
         * 分页测试
         */
        @Test
        public void selectPage(){
            QueryWrapper<User> queryWrapper=new QueryWrapper<>();
            queryWrapper.gt("age",18);
    
            Page<User> page=new Page<User>(0,1);
    
            IPage<User> userPage = userMapper.selectPage(page, queryWrapper);
            System.out.println("总页数:"+userPage.getPages());
            System.out.println("总记录数:"+userPage.getTotal());
            List<User> records = userPage.getRecords();
            records.forEach(System.out::println);
    
        }
    
        @Test
        public void updateByWrapper(){
            UpdateWrapper<User> updateWrapper=new UpdateWrapper<>();
            updateWrapper.eq("name","张三").eq("age",29).set("age",30);
            int rows = userMapper.update(null, updateWrapper);
            System.out.println("影响的记录数:"+rows);
        }
    
    }

    AR测试,比较方便。

    前提条件:实体类继承Model,

    public class User extends Model<User>
    package com.example.demo;
    
    import java.time.LocalDateTime;
    
    import com.example.demo.entity.User;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    /**
     * ${todo}
     *
     * @date: 2020/11/22
     * @author: Li Bin
     */
    @SpringBootTest
    @RunWith(SpringRunner.class)
    public class ARTest {
    
    
        @Test
        public void insert(){
            User user=new User();
            user.setName("阿小");
            user.setAge(12);
            user.setCreateTime(LocalDateTime.now());
            user.setEmail("axiao@baomidou.com");
            //user.setId(4L);
            boolean insert = user.insert();
            System.out.println("新增是否成功:"+insert);
    
        }
    
        @Test
        public void select(){
            User user=new User();
            user.setId(4L);
            User userSelect = user.selectById(user);
            System.out.println(userSelect);
    
        }
    }
  • 相关阅读:
    web前端攻城狮都来晒一晒你的收藏夹吧
    淘宝前端技术系列课程分享
    HTML5编程实战之二:用动画的形式切换图片
    HTML5编程实战之一:HTML5时钟
    【转】chrome developer tool 调试技巧
    Android 云端推送C2DM php实现向终端推送消息
    简单的泰国IP判断
    [翻译]延迟着色(Shawn Hargreaves)〔1〕
    [翻译]延迟着色(2)
    [3D基础]投影矩阵的推导(1)
  • 原文地址:https://www.cnblogs.com/jiliunyongjin/p/14020356.html
Copyright © 2011-2022 走看看