栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

MyBatis动态SQL

Java 更新时间:发布时间: 百科书网 趣学号

MyBatis动态SQL
  • if标签
  • where标签
  • trim标签
  • choose when otherwise标签 相当于...else ...if..else
  • foreach标签
    • 批量删除(数组)
    • 批量添加(集合)
  • sql标签

  • 为了解决拼接SQL语句字符串,来实现动态SQL语句
if标签
  • if标签可以通过test属性的表达式进行判断,若表达式的结果为true,则标签内的内容会执行,反之标签中的内容不会执行。
  • 只使用if标签的弊端:需要拼接一个恒成立的条件where 1=1

        select * from t_emp where 1=1
        
            and emp_name = #{empName}
        
        
            and age = #{age}
        
        
            and sex = #{sex}
        
        
            and email = #{email}
        
    
where标签
  • 标签内无内容,where也不会添加
  • 有内容自动生成where关键字并且将内容前多余的and 或 or去掉,内容后的and 或 or 会报错
    
    select * from t_emp
    
        
            
                emp_name = #{empName}
            
            
                age = #{age}
            
            
                sex = #{sex}
            
            
                email = #{email}
            
            
                did = 1
            
        
    

foreach标签
  • 主要是实现批量操作的标签
  • 属性
    collection 循环体要通过@Param来获取参数
    item 循环的每一项子项的名称
    separator 分隔符
    close 所有内容的后缀
    open 所有内容的前缀
批量删除(数组)
  • 第一种
    
        delete from t_emp where eid in
        
            #{eid}
        
    
  • 第二种
    
        delete from t_emp where
        
            eid = #{eid}
        
    
批量添加(集合)
  • 加上@Param来获取循环的目标list
    
    int insertMoreByList(@Param("emps") List emps);
    
        insert into t_emp values
        
            (null,#{emp.empName},#{emp.age},#{emp.sex},#{emp.email},null)
        
    
sql标签
  • 设置常用的一段sql进行记录,在用的时候进行引用就可以了
    eid, emp_name, age, sex, email
  • 通过include标签引用 refid来确定引用哪个sql
 select  from t_emp
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/986591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号