Mybatis-plus的查,增,删
生活随笔
收集整理的這篇文章主要介紹了
Mybatis-plus的查,增,删
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
續Mybatis-plus入門
package com.jt.test;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.jt.mapper.UserMapper; import com.jt.pojo.User; import org.junit.jupiter.api.Test; import org.mockito.internal.matchers.Or; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.util.StringUtils;import java.util.List; import java.util.Map;@SpringBootTest public class TestMP {@Autowiredprivate UserMapper userMapper;// id=23@Testpublic void select01() {User user = userMapper.selectById(23);System.out.println(user);}/*** 查詢 name="潘鳳" sex="男"* 結果: 1項 userMapper.selectOne()* 多項 userMapper.selectList()* Sql: where name="xxx" and sex="xxx"* queryWrapper: 條件構造器 拼接where條件* 如果遇到多條件查詢,則默認的連接符and* 方式1: 可以通過對象的方式進行控制*/@Testpublic void select02() {User user = new User();user.setName("潘鳳").setSex("男");QueryWrapper<User> queryWrapper = new QueryWrapper<>(user);//根據對象中不為null的屬性 拼接where條件List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}/*** 要求: age>18歲 or sex=男的用戶* 轉義字符: > gt, < lt , = eq* >= ge , <= le*/@Testpublic void select03() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();//編輯的是數據庫字段信息queryWrapper.gt("age", 18).or().eq("sex", "男");//根據對象中不為null的屬性 拼接where條件List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}/*** 要求: 查詢name中包含"精" 并且按照age 降序排列* Sql: like "%精%" 包含精* like "精%" 以精開頭likeRight* like "%精" 以精結尾likeLeft*/@Testpublic void select04() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.like("name", "精").orderByDesc("age");List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}/*** 查詢多個數據* 查詢ID= 1 3 6 7的數據* where id in (xx,xx,xx,xx)* 如果遇到多值傳參,一般采用對象的方式封裝數據*/@Testpublic void select5() { // int[] ids={1,3,6,7};//多值傳參,一般采用對象(封裝p)形式Integer[] ids = {1, 3, 6, 7};QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.in("id", ids);List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}// * 需求: 查詢name為null的數據@Testpublic void select6() {QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.isNull("name");List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}/*** 動態sql查詢:* 要求: 根據 age 屬性與sex屬性進行查詢.* 如果其中數據為null 則不參與where條件的拼接* where age>18 and sex="男"* 錯誤Sql:* SELECT id,name,age,sex FROM demo_user WHERE (age > ? AND sex = ?)* 18(Integer), null* MP實現動態查詢:* 參數1: condition boolean類型數據 true 拼接條件* false 不拼接條件* 參數2: 字段名稱* 參數3: 字段值*/@Testpublic void select7() {Integer age = 18;String sex = "男"; // boolean flag=sex!=null&&sex.length()>0;boolean flag = StringUtils.hasLength(sex);QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.gt(age > 0, "age", age).eq(flag,"sex", sex);List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}/*** demo1:只查詢 name,age字段信息* 挑選查詢的字段信息* queryWrapper.select("name","age");*/@Testpublic void select08(){QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.select("name","age");//沒有查詢的數據以null返回List<User> userList = userMapper.selectList(queryWrapper);System.out.println(userList);}//* demo2: 只要求返回name,age字段@Testpublic void select09() {QueryWrapper queryWrapper = new QueryWrapper();queryWrapper.select("name", "age");List<Map<String, Object>> list = userMapper.selectMaps(queryWrapper);System.out.println(list);}@Testpublic void select10() {List<Object> list = userMapper.selectObjs(null);System.out.println(list);} @Test public void insert(){User user = new User();user.setName("星期五").setAge(18).setSex("男");userMapper.insertUser(user);System.out.println("新增用戶成功"); } //根據name="星期五",將name="星期六" @Test public void update(){String oldName="星期五";String newName="星期六";userMapper.updateUser(oldName,newName);System.out.println("更新用戶成功"); }//刪除用戶信息 根據name屬性刪除數據 @Test public void deleteByName(){String name = "星期六";userMapper.deleteByName(name);System.out.println("刪除用戶成功"); }@Test public void testInsert(){User user=new User();user.setName("嫦娥").setAge(20).setSex("女");userMapper.insert(user); }/*** 將ID=229的用戶名稱 改為六一兒童節*/@Testpublic void updateUser(){User user = new User();user.setId(229).setName("六一兒童節");//set name="xxx" where id = 229userMapper.updateById(user);}/*** 更新操作2* 將name="六一兒童節" 改為"端午節"* 參數說明:* 1.實體對象 封裝修改后的數據 set結構* 2.UpdateWrapper 修改的條件構造器* Sql: update demo_user set name="端午節" where name="61"*/@Testpublic void updateUser2(){User user = new User();user.setName("端午節");UpdateWrapper updateWrapper = new UpdateWrapper();updateWrapper.eq("name", "六一兒童節");userMapper.update(user,updateWrapper);}}總結
以上是生活随笔為你收集整理的Mybatis-plus的查,增,删的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AspectJ使用
- 下一篇: CEST日期格式转换为 年月日时分秒