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

相关推荐

  • 钮钴禄·靓蕾什么意思(钮钴禄·靓蕾是什么梗)

    我一向对明星无感,但这回王力宏的离婚大瓜定要吃一下!李靓蕾作为一个全职太太、全职妈妈被离婚就不光光是明星层面的家庭事务了,现如今社会,我们周围到处都是全职妈妈。作为有着一定知名度的靓蕾女士,不对,现在应该叫钮祜禄.靓蕾的离婚经历真的值得我们广大女士去吃一下瓜!我们作为女士应该理性去看待婚姻。 5年3娃的一家人 王力宏的自恋型人格 对我来说,这是最大的瓜! 王力宏居然是一个自恋型人格的人,多少80后女性都视他为优质偶像呀!我当年的大学舍友就是活脱脱的“迷宏妹”,当年她的理想男友就是王力宏这种款的! 现在看看王力宏和靓蕾女士7年婚姻里他不断去更换心理医生,实质就是为了找个一个心理医生说服他,李靓蕾是有精神病的!实际上,他才是被医生诊断为自恋型人格和有“性瘾”的男人。 那什么是自恋型人格:自恋型人格障碍是一种常被误解的复杂人格障碍,基本特征是对自我价值感的夸大。自相矛盾的是,在这种自大之下,自恋者往往长期体验着一种脆弱的低自尊,只是由于自恋者的自大总是无处不在,使我们更倾向于将其非人化看待。 根据DSM-4的定义,在社区样本中(美国),自恋型人格障碍的患病率为0%—6.2%,在被诊断为自恋型人格障碍的个体中,50%—75%是男性。 很不幸,王力宏是美国人,他还是一个被诊断为自恋型人格的人。有很多人问,为什么王力宏明明知道离婚其实对他的事业是不利的?那他为什么还要选择主动离婚呢? 现在答案显而易见,因为他就是这种自恋人格,他不认为这是什么事儿。妥妥地就能把婚离了,在头条上他还第一时间出来发表离婚表态: 发言简单明了,意思就是自己的事自己家庭会内部处理好,不需要媒体和广大网民的关心了! 但是,你却把曾经天真浪漫的“甄嬛”,活活把人逼成了“钮祜禄.甄嬛”! 昨天被逼得不行的王力宏不得已还是回复了,这对自恋人格已经很艰难了。 他的回复简而言之: 李靓蕾要求2亿;财务分割离婚就按照法律该判的来,转移财产就很渣了。 自己一直活在恐惧、勒索、威胁之下; 说前妻是日本人,意图情绪操控、舆论操控大家,让大家的注意力转移到她的身份去,请搞清楚,你们现在离婚,你是公众人物,管你们是美国人还是日本人,都得接受我们的舆论诉求。 事实证明,王力宏不但有着自恋人格还是一个很懂操控的“PUA”能手! “钮祜禄.甄嬛”式的的理性反击! 李靓蕾一开始写的“小作文” 7年婚姻,前5年里生了3个孩子。后两年就已…

    2021年12月20日
    20
  • 骨灰级推荐高质量小说(高质量小说推荐,不要小白文)

    顶级耐看类的作品看得不是特别多,一般都挑经典的作品看,这里推荐一些个人觉得口碑不错,个人看过以后可能还会再二刷三刷的作品。老规矩,先经典后小众。十部顶级耐看小说,每一本都是骨灰级的大作。 十部顶级耐看小说 1、十部顶级耐看小说推荐一,《斗罗大陆》,这部小说是唐家三少创作的一部玄幻小说,虽然该小说早在2010年就已经完结了,但至今仍被奉为经典,唐门外门弟子唐三,因偷学内门绝学为唐门所不容,跳崖明志时却发现没有死,反而以另外一个身份来到了另一个世界,一个属于武魂的世界,名叫斗罗大陆。这里没有魔法,没有斗气,没有武术,却有神奇的武魂。这个职业,是斗罗大陆上最为强大也是最荣耀的职业魂师; 2、十部顶级耐看小说推荐二,《九鼎记》,自禹皇五斧劈山,统一天下,划分九州,立九鼎后,这片大地便被称为九州。 禹皇离世后,天下便纷争不断。 千年后,一代天骄秦岭天帝横空出世,曾一掌令百丈宽的雁江江水断流,凭绝世武力,最终得以一统天下,可当秦岭天帝离世后,天下同样大乱,数千年来,没有再度统一过。 而现代世界的一代形意宗师‘滕青山’却来到了这样的世界; 3、十部顶级耐看小说推荐三,《武极天下》,一个梦想进入武府圣地的普通少年,立志追求极致武学。 然而面对竞争激烈的考核,又有世家子弟的借势压人,小小平凡少年如何立足? 宗门传承严格保密,核心功法概不外传,在功法传承如此难得天衍大陆,即便进了武府和宗门,想学到顶级武学又谈何容易? 来自神域的小小魔方,展开一个强者的世界。 功法要学就学最顶尖; 4、十部顶级耐看小说推荐四,《赘婿》,《赘婿》是一部历史穿越小说,主要讲述的是宁毅穿越到武朝的故事。小说以宋朝为历史背景,刻画了一个王朝末年的衰亡景象。朝臣钩心斗角、地方势力反叛不断、外族势力不断入侵。在这种背景之下,百姓水深火热。而宁毅的理想,就是砸掉整个儒家体系,让社会回归正常。作为一部历史穿越小说,这部书的文笔特别细腻,节奏也非常慢热,适合老书虫阅读; 5、十部顶级耐看小说推荐五,《史上第一混乱》,这是一本久负盛名的搞笑经典。小说不负书名之名,以搞怪为基调,却丝毫没有混乱的感觉。那些让人喷饭的搞笑段子,那些被混在一起的历史名人,都成为这本小说无处不在的看点和笑点,让人看到欲罢不能。所以,如果想找轻松搞笑的经典小说,那么这本小说是最佳选择; 6、十部顶级耐看小说推荐六,《龙族》,一本经典奇幻小说,主角路明…

    2022年7月26日
    6
  • 岁月静好是什么意思

    意思是生活平安宁静为好,现在安定健康为佳。 每个人心中都会把生活憧憬成一幅画,或小桥流水,或峰峦叠翠,或渔舟唱晚,岁月静好,你我安然。 繁华过处皆如烟,淡淡人生静静过。生命的长廊中,有你,有我,有花香,有阳光,足矣! 人生所求,不过岁月静好,那么,岁月静好究竟是什么呢? 岁月静好,就是处一片清幽,享一方宁静!《豁然阁》 宋·程俱 云霞堕西山,飞帆拂天镜。 谁开一窗明,纳此千顷静。 寒蟾发淡白,一雨破孤迥。 时邀竹林交,或尽剡溪兴。 扁舟还北城,隐隐闻钟磬。 云霞坠落西山,飞帆轻拂着天镜。谁开一窗风景,纳入千顷寂静。天上的明月渐渐淡白,湖中的明月被雨点划开。 忽觉自己邀来竹林之友,又似王子猷雪夜访戴。一叶扁舟返回北城时,只隐隐听到钟磬之声远远传来。 岁月无常,但,还好有这一片静美风光,予我们一世欢欣。 不管岁月赐予我们的是凉薄,还是馨暖,惟愿你我盈一颗素心,静守一池清秋的恬淡,既能守心自暖,也能温暖岁月。 岁月静好,就是放下过往,重整心情,找到那个快乐的自己。《鹧鸪天》 宋·陆游 懒向青门学种瓜,只将渔钓送年华。 双双新燕飞春岸,片片轻鸥落晚沙。 歌缥缈,舻呕哑,酒如清露鲊如花。 逢人问道归何处,笑指船儿此是家。 陆游被免职罢官后,归家过起了闲居的乡村生活。 双双对对新来的燕子在长满春草的河岸上飞来飞去;远处的鸥鸟在夕阳的映照下轻盈如片片树叶在沙滩上飘落。 光阴的故事里,有欢喜,有悲伤,有念念不忘,也有过眼云烟。珍藏该记住的,忘记该忘记的。 整理好疲惫的心情,重新上路。此处失意,他处得意,世界上总有一处让你欢喜的地方。 岁月静好,就是在失意后,重整心情,找到那个快乐的自己。 岁月静好,莫于过一家人,粗茶淡饭,怡然自得。《满庭芳·渔》 元·赵显宏 江天晚霞,舟横野渡,网晒汀沙。 一家老幼无牵挂,恣意喧哗。 新糯酒香橙藕芽,锦鳞鱼紫蟹红虾。 杯盘罢,争些醉煞,和月宿芦花。 这首曲子写渔家欢乐,劳动之余,将船横于渡口,把网晒在河滩,一家人尽情地享受天伦之乐。 世界上最幸福的事,莫过于天伦之乐。一家人整整齐齐,即使是粗茶淡饭,也饶有滋味。 当我们阅尽千帆,见识过无数的悲欢离合、世态炎凉之后,就会明白,家人健康,和乐自得,是一件多么幸福的事。 人生的脚步常常走得太匆忙,请记得多回头看一看亲人,看他们是否安好,因为他们将是我们心灵的休憩之所。 岁月静好,就是选择自己喜欢的生活方式…

    2022年1月3日
    32
  • 鸿蒙OS 2.0对比安卓流畅度实测:差距到底多大?

    最近一段时间,部分华为Mate X2用户和开发者已经陆续收到了鸿蒙2.0 Beta版升级推送,不少机型都有更新。且不同机型收到鸿蒙 OS 2.0 测试版的升级包大小也并不相同,其中比较大的升级包容量已经达到了 6GB 左右,系统版本号为 2.0.0.51。 据悉,新版本UI设计微调、优化了过渡动画。 根据微博数码大 V 透露,升级至鸿蒙 OS 2.0 系统后,整体系统流畅度提高了不少,并且过渡动画也更加顺手了,体验还不错。 日前,该大V又晒出了鸿蒙OS 2.0打开 App 流畅度对比EMUI 11的测试视频。 其中,画面左侧是搭载EMUI 11.0的华为Mate 40 Pro,右侧是搭载鸿蒙2.0 Beta 3(公测)的华为Mate X2折叠屏手机,两者都是麒麟9000处理器,90Hz屏幕刷新率。 根据视频显示,测试第一步清空后台,接着依次打开微博、酷安、Bilibili和和平精英。EMUI 11下微博无开屏广告、B站开屏广告3秒,而鸿蒙下微博有广告、B站开屏广告5秒。 所以前三款APP,都是EMUI 11下打开速度更快,不过从后台重新加载时,鸿蒙OS 2.0的动画更流畅,EMUI 11则有肉眼的缓慢迹象。 至于和平精英这款游戏,虽然鸿蒙OS初始打开更快,但弹出账号登陆界面所用的时间和EMUI 11几乎一致。 在评论页面,该大V留言表示: “这里都是安卓App,应该是鸿蒙环境下的hap更快。” “跟手度和响应速度感觉鸿蒙会快一点,但目前也只是一点,等年底看hap应用会不会快很多”。 就在上月末,该大V还放出了搭载鸿蒙OS2.0的华为Mate X2折叠屏手机在玩《王者荣耀》极致画质和《和平精英》HDR抗锯齿设置时的性能表现。 从对比截图看,鸿蒙OS 2.0无论是整体运行流畅度,还是稳定程度都好过EMUI11,续航方面也更强一些,主要体现在功耗小,更省电。 图源:微博@数码闲聊站 经其亲测,EMUI11和Harmony OS 2.0两个系统在华为Mate40 Pro打开APP、切换APP的速度方面基本一致。可能是因为鸿蒙OS 2.0封装了鸿蒙和AOSP Android 10双架构,现有大多数APP的运行环境适配在Android环境之下的,因此APP开启切换的流畅度提升是有限的。 好消息是使用Harmony编译的APP已经处于内测中,更流畅、更稳定的鸿蒙OS 2.0正式版…

    2021年5月29日
    10
  • 百度SEM竞价推广什么样的创意点击率高?

    创意测试,是很多新手SEMer在优化账户过程中经常忽略的要点之一。事实上,“测试”的思维应该贯穿整个互联网广告投放的过程。因为互联网营销也好,推广也好,都不是靠经验说话,而是靠数据。因此,根据测试的数据结果来进行优化决策,是SEMer更上一层楼的必备阶梯。

    2021年5月7日
    8
  • 为何要禁止个人收款码用于经营收款?

    明年起,微信支付宝个人收款码不能收款卖菜了?”“那我的水果摊以后怎么办?“以后零售企业可选择的替代方式是什么?” “对消费者又有哪些影响?”10月13日,央行关于支付受理终端监管靴子落地,直至11月26日,该消息对市场的影响仍在发酵,甚至引起不少误读。 为何治理个人收款码? 该消息缘起于央行10月发布的关于加强支付受理终端及相关业务管理的通知。根据通知来看,其围绕银行卡受理终端、条码支付受理终端,对收单机构、清算机构作出一系列要求,尤其要提到的是,这也是首次给个人收款码戴上了“紧箍”。 在收款条码管理中,通知原文是这样的,“对于为个人或特约商户等收款人生成的,用于付款人识读并发起支付指令的收款条码,银行、支付机构、清算机构等为收款人提供收款条码相关支付服务的机构,应当制定收款条码分类管理制度,有效区分个人和特约商户使用收款条码的场景和用途,防范收款条码被出租、出借、出售或用于违法违规活动”。 近年来,随着移动支付的迅速发展,个人收款条码得到广泛运用,满足社会公众的个性化、多样化支付需求的同时,也提高了小微经济、地摊经济的资金收付效率。但不得不说的是,个人收款条码目前也存在一些风险隐患。例如,部分机构使用个人收款条码转账业务办理大量生产经营、生活消费交易,混淆交易性质,导致交易信息失真;甚至还有一些不法分子也盯上了个人收款码,扰乱了条码支付业务正常秩序。 北京商报记者注意到,该通知下发后,市场有部分误读,认为央行禁止商户用个人收款码是为了收费?防止偷税漏税?事实并非如此,要厘清的是,央行“下手”治理个人收款码,初衷是防范风险隐患,主要为斩断违规交易、犯罪“资金链”,保护个人经营者和小微商户。 个人商家怎么收款? 监管靴子落地,后续就是怎么落实的问题,根据监管时间安排,通知将于2022年3月1日起正式施行。通知中提到,“对于具有明显经营活动特征的个人,条码支付收款服务机构应当为其提供特约商户收款条码,并参照执行特约商户有关管理规定,不得通过个人收款条码为其提供经营活动相关收款服务”。 此外,通知还有一条提到,“条码支付收款服务机构应当采取有效措施禁止个人静态收款条码被用于远程非面对面收款”。虽然原则上禁止,但央行也对特殊情况开了一道口子,那就是“确有必要进行远程非面对面收款的,条码支付收款服务机构应当对相应收款人实行白名单管理,并审慎确定白名单准入条件与规模、个人静态收…

    2021年12月3日
    6

发表评论

您的电子邮箱地址不会被公开。