当前位置: 首页 > news >正文

投资网站网站源码wordpress下载站

投资网站网站源码,wordpress下载站,php网站开发薪资 深圳,鼓楼福州网站建设写在前面 #x1f6eb;更多知识总结见Mybatis-Plus专栏 #x1f695;内容总结自尚硅谷杨博超老师的视频 #x1f692;博主对于该知识尚在学习阶段 #x1f684;如果发现存在问题请毫不吝啬的指出 #x1f680;#x1f680;扎哇太枣糕的博客首页#x1f680;#x1f680… 写在前面 更多知识总结见Mybatis-Plus专栏 内容总结自尚硅谷杨博超老师的视频 博主对于该知识尚在学习阶段 如果发现存在问题请毫不吝啬的指出 扎哇太枣糕的博客首页 文章目录1 queryWrapper构造器1.1 组装删改查条件1.2 条件优先级1.3 实现子查询2 updateWrapper构造器2.1 升级修改方法(无需创建对象)2.2 实际开发时的应用3 lambdaXxxWrapper构造器3.1 lambdaQueryWrapper构造器3.2 lambdaUpdateWrapper构造器Wrapper条件构造器   条件构造器wrapper就是用来封装CRUD方法参数条件的一个接口其底层有很多的子类最主要的就是最下面的四个子类 queryWrapper可以用来删改查updateWrapper可以在修改操作时不必创建实体类对象的操作LambdaQueryWrapper和LambdaUpdateWrapper则是在字段参数的调用上进行了升级其他都一样 因为增删改查中的增加记录不需要条件即可完成所以增加方法无需条件构造器wrapper其他的删改查则是有这个条件构造器参数的 1 queryWrapper构造器 1.1 组装删改查条件 组装查询条件   查询条件为名字里包含a字母、年龄在20~30之间、email不为空的所有值且查询到的值按照年龄降序排序若年龄相同则按照id升序排序   查询返回name、age、email字段 Test public void selectListTest() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.select(name, age, email).like(name, a).between(age, 20, 30).isNotNull(email).orderByDesc(age).orderByAsc(id);// SELECT id,name,age,email,is_deleted FROM user WHERE is_deleted0 AND (name LIKE ? AND age BETWEEN ? AND ? AND email IS NOT NULL) ORDER BY age DESC,id ASCListMapString, Object maps mapper.selectMaps(queryWrapper);maps.forEach(System.out::println);System.out.println();ListUser users mapper.selectList(queryWrapper);users.forEach(System.out::println); }⚠  selectMaps和selectList的区别在于selectMaps会将查询到的结果封装在一个元素类型为map集合的list集合中集合中只有查询返回字段所对应的键值对而selectList的返回值也是一个list集合只不过元素类型为对应的泛型包含泛型所有的字段查询返回字段之外的值都为null组装删除条件   删除条件email不为空 Test public void deleteTest() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.isNull(email);// UPDATE user SET is_deleted1 WHERE is_deleted0 AND (email IS NULL)int result mapper.delete(queryWrapper);System.out.println(删除的行数为 result); }组装修改条件   修改条件(年龄大于20并且用户名中包含有a)或邮箱为null Test public void updateTest() {User user new User();user.setAge(20);user.setEmail(temporary.com);QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.gt(age, 20).like(name, a).or().isNull(email);// UPDATE user SET age?, email? WHERE is_deleted0 AND (age ? AND name LIKE ? OR email IS NULL)int result mapper.update(user, queryWrapper);System.out.println(修改的行数为 result); }1.2 条件优先级 使用queryWrapper组装复杂条件的时候存在一个且或条件的优先级问题也就是说在实现多条件拼接的时候且或条件该如何拼接到一起接下来就挑取两个例子来了解一下 // (年龄大于20并且用户名中包含有a) 或 邮箱为null // UPDATE user SET age?, email? WHERE is_deleted0 AND (age ? AND name LIKE ? OR email IS NULL) queryWrapper.gt(age, 20).like(name, a).or().isNull(email);// 用户名中包含有a 且 (年龄大于18或邮箱为null) // UPDATE user SET age?, email? WHERE is_deleted0 AND (name LIKE ? AND (age ? OR email IS NULL)) queryWrapper.like(name, a).and(i - i.gt(age, 18).or().isNull(email));总结一下Lambda表达式中的条件会被当做一个整体优先执行如果不括起来影响结果的话就需要使用Lambda表达式的写法具体的使用要根据业务SQL语句来定 1.3 实现子查询 Test public void sonSelectTest() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.inSql(id, select id from user where id 100);// SELECT id,name,age,email,is_deleted FROM user WHERE is_deleted0 AND (id IN (select id from user where id 100))ListUser users mapper.selectList(queryWrapper);users.forEach(System.out::println); }2 updateWrapper构造器 2.1 升级修改方法(无需创建对象) 组装修改条件   修改条件用户名中包含有a并且(年龄大于20或邮箱为null) Test public void updateWrapperTest() {UpdateWrapperUser updateWrapper new UpdateWrapper();updateWrapper.like(name, a).and(i - i.gt(age, 20).or().isNull(email));updateWrapper.set(name, 小黑).set(email, dhsjfghr);// UPDATE user SET name?,email? WHERE is_deleted0 AND (name LIKE ? AND (age ? OR email IS NULL))int result mapper.update(null, updateWrapper);System.out.println(修改的行数为 result); }由SQL可见使用updateWrapper和queryWrapper完成的修改功能一样且调用的方法也一样(mapper.update)二者的区别就是updateWrapper不用创建实体类对象直接使用set方法就可以设置修改的字段值 2.2 实际开发时的应用 在实际开发中不管是queryWrapper还是updateWrapper都应该在一定的判断下再去使用条件构造器拼接条件比如说请求传过来的值在不为空的情况下才去对这个字段进行条件设置比如下面的这段代码 Test public void ifTest() {String userName ;Integer ageBegin 20;Integer ageEnd 30;QueryWrapperUser queryWrapper new QueryWrapper();if (StringUtils.isNotBlank(userName)) {queryWrapper.like(name, userName);}if (ageBegin ! null) {queryWrapper.ge(age, ageBegin);}if (ageEnd ! null) {queryWrapper.le(age, ageEnd);}ListUser users mapper.selectList(queryWrapper); }然而上面的代码使用了很多的if判断显得过于冗余于是许多的方法都带有一个condition参数当这个参数为true的时候才会拼接查询条件下面的代码用来代替上面一堆的if判断 QueryWrapperUser queryWrapper new QueryWrapper(); queryWrapper.like(StringUtils.isNotBlank(userName), name, userName).ge(ageBegin ! null, age, ageBegin).le(ageEnd ! null, age, ageEnd);3 lambdaXxxWrapper构造器 lambdaXxxWrapper与xxxWrapper的区别就是他们可以使用Lambda的方式直接调用对象的getter方法来指定字段而不用对照数据库中的字段名这样就乐意避免参数对应不上数据库字段的问题。除了在调用字段时的写法不一样之外其他的写法上二者的方式都一样 3.1 lambdaQueryWrapper构造器 Test public void lambdaQueryWrapperTest() {String userName ;Integer ageBegin 20;Integer ageEnd 30;LambdaQueryWrapperUser lambdaQueryWrapper new LambdaQueryWrapper();lambdaQueryWrapper.like(StringUtils.isNotBlank(userName), User::getName, userName).ge(ageBegin ! null, User::getAge, ageBegin).le(ageEnd ! null, User::getAge, ageEnd);ListUser users mapper.selectList(lambdaQueryWrapper); }3.2 lambdaUpdateWrapper构造器 Test public void lambdaUpdateWrapperTest() {LambdaUpdateWrapperUser lambdaUpdateWrapper new LambdaUpdateWrapper();lambdaUpdateWrapper.like(User::getName, a).and(i - i.gt(User::getAge, 20).or().isNull(User::getEmail));lambdaUpdateWrapper.set(User::getName, 小黑).set(User::getEmail, dhsjfghr);// UPDATE user SET name?,email? WHERE is_deleted0 AND (name LIKE ? AND (age ? OR email IS NULL))int result mapper.update(null, lambdaUpdateWrapper);System.out.println(修改的行数为 result); }这篇博客参加了几何大佬的社区活动 还望大家多多支持几何大佬的社区   ⇩  ⇩  ⇩  ⇩  ⇩  ⇩ CSDN社区 《创作达人》活动只要参与其中并创作文章就有机会获得官方奖品精品日历、新程序员杂志快来参与吧链接直达 https://bbs.csdn.net/topics/605272551
http://www.yutouwan.com/news/464837/

相关文章:

  • 浅谈高校门户网站建设的规范标准电影网站开发背景
  • 响应式网站优点做家常菜哪个网站最好
  • 网站建设修改教程视频教程网站建设怎么入账
  • 北京智联招聘官方网站做家政淘宝店铺购买价格
  • 网站源码怎么使用企业建立网站步骤
  • 免费做网站怎么做网站619网站开发用什么好
  • 做网站意向客户微网站如何做微信支付宝
  • 网站 子域名网站管理后台模板
  • 网站开发模板代码枣庄做网站
  • 滨海做网站哪家好北京网站优化体验
  • 无锡优化网站排名网店美工的工作内容
  • 金融网站源码代理app软件
  • 西安 网站托管建筑工程培训
  • 网站根目录文件名网页视频下载到本地
  • 顶升网架公司南京网站优化报价
  • 爱网站查询英文网站模板下载
  • 网上商城建站工作室青羊区建设网站
  • 专业做网站关键词排名下掉6个常用项目管理软件
  • 微信商城网站模板工厂怎么推广自己的产品
  • 做加工都在哪个网站推广百度站长工具怎么推广网站
  • 动漫网站开发九一人才网赣州找工作
  • 网站建设活动策划方案wordpress设置使用旧版编辑器
  • 网站为什么做静态上饶网站建设兼职
  • 大连建网站需要多少钱济南学网站建设哪里好
  • ipad做网站服务器贴吧网站建设
  • 中介网站设计培训网站官网
  • 做网站最好的网络公司网站建设及相关流程图
  • 合肥新站区有做网站的吗庆阳设计公司
  • 使用wordpress在ec2上建网站一流的常州网站优化
  • 网站移动端权重怎么做网站设计所遵循的原则