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的查,增,删相关推荐
- ylb:创建数据库、表,对表的增查改删语句
ylbtech-SQL Server:SQL Server-创建数据库.表,对表的增查改删语句 SQL Server 创建数据库.表,对表的增查改删语句. 1,ylb:创建数据库.表,对表的增查改删语 ...
- 表单的增 删 改 查
django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...
- properties(map)增.删.改.查.遍历
import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...
- Flask-SQLAlchemy 对数据库的增查改删
Flask-SQLAlchemy 对数据库的增查改删 使用 Flask-SQLAlchemy 连接数据库,可以通过 Python 对象来操作数据库. Flask-SQLAlchemy 连接数据库参考: ...
- servlet mysql insert_servlet+mybatis 实现mysql的增删改查实例
古人云:温故而知新.趁周末,重新来学习了一遍servlet + mybatis 实现mysql的增删改查,算是对自己学习的一个总结和记录. 开门见山,首先我们来看一下项目目录结构: 不难发现这是一个m ...
- ❤️使用Mybatis对数据库进行增删改查!!!
❤️使用Mybatis对数据库进行增删改查!!! ❤️namespace的用法 namespace中的包名要和接口一致: ❤️select用法 id:就是对应的namespace的方法名 result ...
- python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...
实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...
- Linux技术--mysql数据库增-删-改-查
# mysql 数据库 ## 数据库的操作 ### 五个单位 * 数据库服务器 Linux或者 windows * 数据库 * 数据表 * 数据字段 * 数据行 ### 连接数据库 ``` 1 ...
- Java中的sqlsession_java相关:MyBatis中SqlSession实现增删改查案例
java相关:MyBatis中SqlSession实现增删改查案例 发布于 2020-6-13| 复制链接 摘记: 前言 开博客这是第一次写系列文章,从内心上讲是有点担心自己写不好,写不全,毕 ...
- 用Spring+Mybatis写一个数据库增删改查
用Spring+Mybatis写一个数据库增删改查 总体结构 ClassBiz.java package com.gxj.biz;import java.util.List;import com.gx ...
最新文章
- NLP/CV模型跨界,视觉Transformer赶超CNN?
- linux进程同步/通信,线程同步/通信的区别
- 情人节,找个程序员当男朋友,一般都不会太差
- Android wifi驱动的移植 realtek 8188
- 打印异常堆栈_关于日志打印行号的性能案例
- 黑鲨游戏手机二代再曝新特性 “操控之王”带来全新体验
- 北京的一場演出-私人行程
- android 开机自动运行脚本,安卓设置脚本开机自启动
- log4j 日志输出级别
- ftp免费下载工具,4个好用的ftp免费下载工具
- HADOOP的搭建和配置(一)基础环境配置
- react router 路由守卫_react实现路由守卫
- Ethernet guarder V1.1.exe 下载
- python招聘-的python招聘
- Linux 服务器上安装 Virtuoso 数据库 并导入数据(超详细)
- Skyline三维地理信息系统软件平台
- find() python
- 财路网每日原创推送:币圈灰姑娘,BSV弱市该如何逆袭
- 小白也可以学会小爱同学语言控制灯
- 隐私计算加密技术基础系列(上)
热门文章
- html站点根目在哪,10分钟了解Dreamweaver中站点根目录相对路径
- pacman 查询_Pacman 命令记录
- 【CityHunter】服务器端设计思路
- [netplus]初见,Netplus快速开始之PingPong Example
- 个人第一次作业:阅读与准备作业
- 图解splay / splay模板 / p3369
- jQuery弹窗组件 colorbox
- mysql查询男女平均年龄_mysql查询练习(三)
- powerdns 安装部署备忘
- iOS数据持久化设计探讨(NSCache,PINCache,YYCache,CoreData,FMDB,WCDB,Realm)