• MyBatis 动态sql语句


    简述

      sql语句是支持动态查询的,支持if,when等标签进行判断。

      我们现在新建个工程用于动态sql语句的实现。

    <if>标签

      首先我们在dao接口新建个方法,这个方法用于根据传入的参数进行查询

      然后我们在xml文档写我们的配置,在写sql语句的时候我们就要用到动态sql的标签<if>,if标签里面的test就是我们要判断的条件,这里需要注意这是sql的判断,与要写成and不能写&&

       然后我们来写测试方法

      执行后没有问题

      如果我们有两个判断条件,userName和sex非空时就作为判断条件,我们就再加上一个if标签

      现在我们在测试方法多加个sex判断

       现在查询的就是名字叫老王且性别是女的元组

    <where>标签

      用where也能实现多个if的情况,where标签可以省略1=1,本质是mybatis自动帮你加1=1

      结果也是一样的

    <foreach>标签

       在实际操作中我们会有查询条件为集合的需求,例如要找id在集合(42,43,50)里出现的元组,这个查询用sql语句很简单就能写出来

      那在mybatis怎么实现呢?我们在之前写的queryvo类里面加个list用于表示查询条件的集合,并生成它的get和set方法

       然后我们来写dao接口的方法

      

      再来写xml的配置,这里用到我们的foreach标签

      collection:代表要遍历的集合元素,注意编写时不要写#}
      open:代表语句的开始部分
      close:代表结束部分
      item:代表遍历集合的每个元素,生成的变量名sperator代表分隔符

      然后我们来写测试类,很简单没啥要说的

       跑出来没有问题

       这里有个需要注意的点就是#{}里面写什么是取决于item里面写的什么,item写uid,井号里面就要写uid

      以上就是sql动态语句的实现了,因为学校上课完全没有讲,所以这篇博客写得极其缓慢,现在写完了真爽快!

      2020/8/26 23:00:37

       

      

  • 相关阅读:
    CSS选择符-----关系选择符
    CSS选择符-----元素选择符
    jQuery效果--show([speed,[easing],[fn]])和hide([speed,[easing],[fn]])
    大型网站架构系列:电商网站架构案例
    大型网站架构系列:负载均衡详解(上)
    JBOSS集群和安装
    webwork或Struts配置网站根路径的默认页面办法
    SQL Server 删除重复记录,只保留一条记录
    删除JBOSS eap4.3下的jmx-console、web-console、ws-console、status服务
    SLF4J versions 1.4.0 and later requires log4j 1.2.12 or later 终极解决
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/13556450.html
Copyright © 2020-2023  润新知