SpringBoot MyBatis查询方式(springboot mybatis关联查询)

1 等于查询

1.1 数值型

  • Dto类中定义数值类型的字段
private Integer state;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.state != null ">
    and a.state = ${condition.state}
</if>

1.2 字符串

  • Dto类中定义字符串类型的字段
private String descr;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.descr != null and condition.descr != '' ">
    and a.descr = '${condition.descr}'
</if>

2 不等于查询

2.1 数值型

  • Dto类中定义数值类型的字段
private Integer neqState;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.neqState != null ">
    and a.state != ${condition.neqState}
</if>

2.2 字符串

  • Dto类中定义字符串类型的字段
private String neqDescr;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.neqDescr != null and condition.neqDescr != '' ">
    and a.descr != '${condition.neqDescr}'
</if>

3 包含查询

  • Dto类中定义字符串类型的字段
private String descr;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.descr != null and condition.descr != '' ">
    and a.descr like '%${condition.descr}%'
</if>

4 以…开始查询

  • Dto类中定义字符串类型的字段
private String descr;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.descr != null and condition.descr != '' ">
    and a.descr like '${condition.descr}%'
</if>

5 以…结束查询

  • Dto类中定义字符串类型的字段
private String descr;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.descr != null and condition.descr != '' ">
    and a.descr like '%${condition.descr}'
</if>

6 时间范围查询

  • Dto类中定义两个字符串类型的字段
private String startStr;
private String endStr;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.startStr != null and condition.startStr != '' ">
     <![CDATA[ 
         and a.coursestartt >= '${condition.startStr}' 
     ]]> 
</if>
<if test="condition.endStr != null and condition.endStr != '' ">
     <![CDATA[ 
         and a.coursestartt <= '${condition.endStr}' 
     ]]> 
</if>

7 单个条件查询

  • Dto类中定义一个字符串类型的字段
private String roleid;
  • Mapper.java文件中增加查询条件
void deleteByRoleid(@Param("roleid") String roleid);
  • Mapper.xml文件中增加查询条件
delete id="deleteByRoleid" parameterType="String">
    delete from sys_menu_role where roleid = #{roleid}
</delete>

8 两个条件查询

  • Dto类中定义两个个字符串类型的字段
private String userid;
private String levelid;
  • Mapper.java文件中增加查询条件
List<SysMenuParam> readUserMenuByUseridAndLevelid(@Param("userid") String userid,@Param("levelid") String levelid);
  • Mapper.xml文件中增加查询条件
<!-- 查询指定层级下的用户角色菜单 -->
 <select id="readUserMenuByUseridAndLevelid" resultType="com.lucksoft.sys.menu.param.SysMenuParam">
     <!--levelid就是传入的参数,bind相当于是一个参数,这个参数的值就是value拼接出来的值--> 
     <bind name="startLevelid" value="levelid + '%'" />

     select 
     a.doctypeid,a.pid,a.level,a.leaf,a.name,a.namepinyin,a.namepinyin1,a.url,a.url1,a.icon,a.photo,a.type,a.category,a.visible,a.openmode,a.descr
     ,a.state,a.sort,a.id,a.version,a.del,a.regid,a.regt,a.modt,a.modid
     from sys_menu a,sys_menu_role b,sys_user_role c
     where a.del = 0 and a.state = 1
     <!-- 根据平台过滤 -->
     and a.levelid like #{startLevelid}
     <!-- 不显示根节点 -->
     and a.level != 1 
     <!-- 页面显示(0隐藏/1显示) -->
     and a.visible = 1 
     <!-- 菜单类型(1PC端/2移动端) -->
     and a.type = 1
     and b.del = 0 and c.del = 0
     and a.id = b.menuid and b.roleid = c.roleid
     and c.userid = #{userid}
     order by a.sort asc
 </select>

9 多个条件查询

  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<select id="readAll" resultType="com.lucksoft.sys.menu.param.SysMenuRoleParam" 
 parameterType="com.lucksoft.sys.menu.param.SysMenuRoleParam">
     select 
     a.roleid,a.menuid
     ,a.id,a.version,a.del,a.regid,a.regt,a.modt,a.modid
     from sys_menu_role a
 		<where>
 				a.del = 0
 				<if test="condition.roleid != null and condition.roleid != '' ">
 						and roleid = '${condition.roleid}'
 				</if>
 				<if test="condition.menuid != null and condition.menuid != '' ">
 						and menuid = '${condition.menuid}'
 				</if>
 		</where>
 		order by a.regt desc
 </select>

10 in查询

  • Dto类中定义一个列表类型的字段
private List<String> inRoleidList;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.inRoleidList != null and condition.inRoleidList != '' ">
 		<foreach collection="condition.inRoleidList" open=" and a.roleid in (" close=")" item="uid" separator=",">
 				#{uid}
 		</foreach>
</if>

11 not in查询

  • Dto类中定义一个列表类型的字段
private List<String> inRoleidList;
  • Mapper.java文件中增加查询条件
List<SysMenuRoleParam> readAll(@Param("condition") SysMenuRoleParam condition);
  • Mapper.xml文件中增加查询条件
<if test="condition.inRoleidList != null and condition.inRoleidList != '' ">
 		<foreach collection="condition.inRoleidList" open=" and a.roleid not in (" close=")" item="uid" separator=",">
 				#{uid}
 		</foreach>
</if>
本文链接:https://www.dzdvip.com/38326.html 版权声明:本文内容均来源于互联网。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 395045033@qq.com,一经查实,本站将立刻删除。
(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月4日 16:15
下一篇 2022年9月5日 20:41

相关推荐

  • 十首最好老歌(真正经典的十首老歌)

    每首老歌都能带给人不一样的回忆,老歌都是非常用心打磨出来的歌曲,无论是曲还是词,都很让人感受许多,加上歌手完美的演唱,能够引发心中感情的共鸣,让人回味无穷,能够静下心来品味。今天我就给大家带来了十首最好老歌,一起来听听看吧。 一、《大海》 演唱:张雨生 这首歌充分展示了张雨生的顶尖唱功,抒发的情感也恰好契合听众们的心理需求,抒发了许多人的情感,虽然是一首较为孤寂的歌,但听众心理早已是波澜壮阔,心中的伤痛也随着这首歌随风飘远。 二、《吻别》演唱:张学友 作为张学友最具代表性的作品之一,歌词将失恋者那种缘尽而情未了的不舍与纠葛表现得淋漓尽致。吟唱者与听众会随着歌曲与词的演唱,一步步掉进“陷阱”,对那个隐藏在歌中的失恋者寄予一种特别的同情。 三、 《倩女幽魂》 演唱:张国荣 1987《倩女幽魂》的主题曲,也是内地人最熟悉的一首张国荣的歌。这首歌一举打破了香港乐坛一往的抒情风格,成为粤语劲歌的鼻祖,为香港乐坛打了一针强心剂,从此开启了劲歌热舞时代,在当时,香港几乎所有大街小巷都会播放这首歌,就算是现在听起来,也是非常开心的一首歌。 四、 《我只在乎你》,演唱:邓丽君 这首歌是邓丽君最钟爱的歌,也是她最后发表的国语之一;虽然多年来这首歌被很多明星翻唱过,甚至在很多言情小说和影视里面都被多次引用,但是让人忘不了的还是那张记忆里甜美的笑脸和柔情的歌喉,任时光匆匆流去,我在乎的还是只有一个你,一首简单的情歌被她演绎成了一个具有丰富情感的金曲,这大概就是她的专属魅力吧! 五、《一场游戏一场梦》 演唱:王杰 《一场游戏一场梦》是王杰的首张国语专辑,该专辑于1987年12月19日发行,共收录了10首歌曲。此专辑的制作人是李寿全,陈志远担任了整张专辑的编曲。1988年,专辑歌曲《一场游戏一场梦》获得第25届金马奖最佳电影插曲奖。 六、《过火》 演唱:张信哲 这首歌叙述了一个对感情非常忠诚的男孩被一个女孩玩弄感情,最后女孩出轨,不过男孩却并没有报复女孩,反倒是选择宽容,这首歌也在劝诫我们,应该对对方宽容一点,即使对方做了很过分的事情,宽容对方也是宽容自己。 七、《飘雪》 演唱:陈慧娴 这首歌也是翻唱自一首日语歌,原曲是《花开的旅途》,这首歌充分表达了女性多愁善感的性格,悲欢离合总是会伴随人的一生,陈慧娴感觉是在唱自己,但是这又何尝不是许多人的真实感受呢。 八、《月半小夜曲》 演唱:李克勤 这…

    2022年7月18日
    29
  • 信息流广告账户怎么优化才能提高转化率?

    你在投放信息流时会遇到这种类型的问题吗?曝光太少了,跑不出量?广告转化成本高,如何提高转化,降低成本?预算怎么设置,才能既省钱又有效?下面我们重点关注如何提升转化率。 分别从以下4个方面来讨论一下: 1、营销漏斗模型 信息流广告的流程是展现,点击,访问,咨询,转化。每一层都会减少一部分客户,中间会因为各种原因导致客户离开,放弃购买。 和营销漏斗相辅相成的是宝塔模型,宝塔模型是和营销漏斗正好相反的流程。当我们在统计数据、分析营销转化漏斗的时候,需要 正向逆向结合来看。 我们在优化账户时需要根据宝塔模型进行分析,也就是说订单量少的原因是因为咨询量,咨询量为什么会少,那就要分析访问量是否降低,访问量降低的原因是点击下降,点击下降的原因是展现量的降低,这样分级分析。 这才是我们进行信息流账户优化的原则和根本。 2、流量优化问题分析 信息流广告优化定向要避免过窄、交叉、重叠: 1)避免过窄:兴趣关键词+app名称定向选定过少导致用户覆盖少;自定义人群数量太少;错选过滤地域;点击或转化人群包未拓展; 2)避免交叉:多重定向重叠,不同定向类型取交集;如:选择某一城市,再叠加分类,叠加关键词; 3)避免重叠:同账户间多个计划选择了相同的定向,导致相互竞争。 优化方法: 1)根据目标受众:结合产品的用户属性(如年龄、地域、性别、使用时间段等)设置,提升效果转化。 2)根据效果数据优化:除必选定向外,全量投放,通过 “受众分析”报告,查看用户属性分布 分析数据报表,去除高转化地域、年龄段、兴趣分类,可有效降低转化成本。 3、转化优化分析 转化优化包含应用下载页优化、落地页优化和转化工具优化这三个层面。 1)应用下载页优化: LOGO、简介要清晰醒目,建议使用与平台最为接近的色调; 突出核心卖点和优势,例如优惠活动等; 选用高清、富有特色的应用截图及真实场景使用截图; 过滤掉已经安装过的用户,注意避免非wifi环境的投放。 2)落地页优化: 首屏原则,精简信息,吸睛突出卖点; 表单噱头,位置适当,逻辑通顺,有理有据; 落地页整体长度建议不超过3屏,拒绝冗余信息; 落地页承上启下,在文案和色调上外层与创意保持呼应。 3)转化工具优化: 1-2个转化目标最佳,在设置转换目标时,不建议在落地页中设置多种转化目标,这样会有碍 广告系统智能学习。 落地页中的转化目标放置首屏或固定悬浮。如果转化目标…

    2021年4月7日
    115
  • 职场人健康指南

    面对生活压力与工作压力,职场人可以从哪些方面着手调节自身、提升动力,迎接一个更加健康活泼、积极向上的生活?在本篇文章里,作者总结了一份职场人可以借鉴操作的健康指南,让我们一起来看一下吧。 我以前在文章里讲过:我们日常生活中绝大多数的问题,其实都可以通过三种方式解决:锻炼、社交,以及良好的作息。 这句话多少有开玩笑的成分,但实际上也的确如此。 为什么呢?因为这三种方式,可以帮助你保持一个良好的身体和心理状态,而这种状态,可以极大地增强你的抗压能力和复原力。 我们在生活中遭遇到的压力,很多时候,其实都并非来自于问题和挑战本身,而是来自于什么呢?我们内心深处对这些问题和挑战的恐惧。 而这些恐惧又来源于什么呢?源于我们对自己的不自信。我们不认为我们能够抵抗它们、克服它们,因此当面对挑战时,会更加容易把威胁放大,从而让自己采取回避的策略。 更深一层挖掘,这种不自信,很大程度上又来自于我们对自身状态的认知和理解。 神经科学家 Antonio Damasio 认为:我们的身体会不断综合肌肉和骨骼的状态,获取全身运动能力的信息,这些信息会构成我们对「自己能做什么」的内在认知。而这种内在认知,会在很大程度上影响我们的自信心和自尊心。 因此,Damasio 认为:如果一个人缺乏锻炼,导致他身体孱弱、不够健康,那么这种状态可能会造成压力、焦虑和低自尊——而这是无法通过思考和心理的调整来弥补的。相当于说,它决定了你「心理状态」的上限。 所以,一个具备更佳身体状态的人,在面对压力和挑战时,总是能够比一个状态不佳的人,拥有更强的主动性、进取心、自信心,以及毫不懈怠的毅力。 实际上,这个时代,为什么会有那么多的压力、焦虑以及心理问题?一部分原因可能是世界在加速,变得越来越不确定和复杂;而另一部分原因,也是由于工作压力太大,大家无暇放松、锻炼,始终处于紧绷的状态之中,从而使得我们的抵抗力变得低落,更加容易产生种种问题。 很多人看到「健康」,会认为,只要自己不生病,体检状况正常就好,反正慢性疾病和死亡离自己还很遥远——但其实不是的。 先不提近几年的种种猝死事件,身体状态的低落,会在很大程度上影响我们的心理状态,使得我们更加难以抵抗生活中的挑战和困难,降低幸福感。 另一方面,身体状态的低落,又会极大地限制我们的精力状态。 我在之前的文章中,提到过「精力管理」。有朋友问,那么我们的精力上限是否可以提高呢…

    2021年7月2日
    14
  • 小米11系列,选择哪款?哪款性价比高?

    这几款同系列手机到底如何,各自有什么优缺点,哪款值得买,进行全方位的分析总结 本文比较长,为了更方便、直观阅读,可以根据下面的目录跳转到自己感兴趣的部分阅读 1/ 外观区别 2/ 处理器区别 3/ 拍照区别 4/ 电池续航区别 5/ 其它 6/ 总结 不知道大家有没有这样熟悉的感觉,小米11 手机版本开始多了起来,有点「红米 K30」手机的味道 目前小米11 系列总共有 4 个版本手机,分别为 小米11 小米11 Pro 小米 11 ultra 小米11 青春版 下面是正文开始部分,从不同方面对比分析下这几款手机 1/ 外观区别 我们先分别看下这几款手机的外观,都张什么样,好不好看 小米11     图片来自公开数据     图片来自公开数据 小米 11 Pro     图片来自公开数据     图片来自公开数据 小米 11 ultra     图片来自公开数据     图片来自公开数据 小米11 青春版     图片来自公开数据     图片来自公开数据 先整体来看下差异吧     从外观上来看,这几款手机都很像,除过「小米11 青春版」外,其它几款都是采用了 6.81 英寸 AMOLED 四曲面屏幕,而且都是使用的 E4 级别 现在的手机屏幕越来越大,我相信有一部分人还想着小屏幕,但是这几乎不可能了,Android 手机 现在还发布小屏的几乎没有了,印象中记得有一款 S10e,配置的是 5.8英寸 屏幕方面差异不大几乎一样,现在都流行曲面屏,喜欢直屏的可以选择「小米11 青春版」哈     小米11青春版 骁龙780G处理器 AMOLED柔性直屏 8GB+12 相比小米11,小米11 Pro 在屏幕方面多了杜比视界,亮度有所提升,而且使用了新型导热变相材料,比上一代性能提升了 100% 2/ 处理器区别 现在处理器标配都是「高通骁龙 888」,这也是今年最流行最高配的 SOC 了     关于处理器排行榜,我给大家看个智能手机处理器排行榜,截取前 15名     数据来自 「http://NANOREVIEW.NET」 [1]     就目前综合测试评分来看「骁龙888」除过苹果 A14外,排名第一位 至于「高通骁龙 780G」这款芯片,发布于 2021年 3 月 25,采用的是 5nm工艺,整体性能水准也不错 3/ 拍照区别 观察过这几款手机后置摄像模组的朋友…

    2021年8月28日
    102
  • 为什么风靡共享单车的实心胎,在共享电动车上“风光不再”?

    共享单车用的是实心胎,放到今天,这大概是一件人尽皆知的事情。但早在2016年共享单车刚成为潮流的一环时,许多人还并不了解这件事,甚至有人为了验证这一“发现”,不惜违法也要“一探真相”,可以看出当年对于不少人来说,实心轮胎还是略有点陌生的事物。 但其实,实心轮胎许久以来都在“正式服役”,在那些货运码头与车站装卸货物的大型车辆一直以来应用的其实都是实心轮胎。这种轮胎结构,才能吃得消那些动辄数十吨的载重,而它广泛进入我们的日常生活,也确实是从共享单车开始。 将目光转到现在,共享出行行业在经历大起大落后,现在已经呈现出平稳多样化的态势。而随着共享电动车在许多城市进行投放,有人也发现,不同于当年共享单车的是,几乎市面上的主流共享电动车几乎都没有采用实心轮胎这一设计,这又是为什么呢? 实际上,不仅是共享电动车,时至今日即使是共享单车,也很少有还在用实心轮胎的了。实心轮胎虽然免维护、不爆胎,但耗材大造价高、胎重大不轻便、弹性差颠簸强的诸多缺点,让它逐渐被中空胎、蜂窝胎等其他同样具备安全省心性质的免充气轮胎结构所取代。 而对于共享电动车来说,由于速度更快,减震的要求也相较共享单车要来得更高,光在轮胎上下功夫,也早就难以满足那些追求用户体验的共享电动车平台的需要了,而应对这种市场上存在的需求与问题,耐动推出的塑钢轮组则会是一个优秀的解答。 耐动塑钢轮组产品采用轻弹轮胎与塑钢轮毂两大“得力干将”相辅而成,在轮胎与轮毂两个角度共同发力,为使用者大幅度的提升综合出行体验。 耐动轻弹轮胎采用LCRB材料结合耐动自研配方生产制造,运用了针对传统蜂窝结构升级的多蜂窝结构,整体上相较市场多数免充气轮胎产品而言,具有显著的重量更轻、弹性更高、安全性更高等特点。 耐动塑钢轮毂同样是采用了高分子有机材料制作的新型轮毂产品,相较传统的辐条轮毂、合金轮毂产品在免维护更省心上具有突出优势。 耐动塑钢轮组在通过轮胎、轮毂的双重优质减震缓冲影响下,能够将骑行过程中的冲击力大幅降低,充分提高用户的舒适性。免维护、耐用的产品特色更是让它能轻松满足共享电动车的高强度使用情况。 耐动塑钢轮组既增加了共享电动车用户的骑行体验,又耐用省心不需要经常打理维护,相信在未来,会有更多的共享单车与共享电动车产品都采用这一轮组,让共享出行的出行体验再上一层楼~

    2022年7月9日
    41
  • SEO优化:影响网站排名的因素有哪些?

    不同的搜索引擎优化会有不同的排名规则。同样,影响网站排名的因素也有很多。有可能是收录的问题,可能是内容的问题,也有可能是外链的问题。那么,影响网站搜索排名的常见因素有哪些呢?

    2021年4月27日
    22