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

Mybatis 03

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis 03

3,动态SQL

动态 SQL 是 MyBatis 的强大特性之一。借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了易用性。

3.1,if

使用动态 SQL 最常见情景是根据条件包含 where 子句的一部分。
例如:给员工增加一个按姓名查询的方法:

List getEmployeeLikeName(String name);

实现:


    select id,name,age from tb_employee 
    
        where name like #{name}
    

3.2,SQL片段

为了重用一些语句,我们可以使用 sql 标签来定义一些共用的代码形成 SQL 片段。定义方式为:

id,name,age

它有一个必须属性是id,用于给这个sql片段一个引用名称,共用代码写在这个标签中间。
定义好后,在使用的地方通过 进行使用
例:


3.4,trim,where,set 3.4.1,where
不使用where:

使用where

3.4.2,trim

如果 where 元素没有按正常套路使用,我们还可以通过自定义 trim 元素来定制我们想要的功能。
例如:和where等价的自定义trim为:


...

3.4.3,set

set 标签用于修改数据时使用。
定义方法:

void update(Employee employee);

实现:


    update tb_employee
    
        
            name=#{name},
        
        
            age=#{age},
        
    
    where id=#{id}

3.5,foreach

动态 SQL 的另一个常见使用场景是对集合进行遍历。

3.5.1,批量查询

动态 SQL 的另外一个常用的必要操作是对一个集合进行遍历,通常使用 in 来操作。例如,我们查询 id 在 1,2,3,4 的员工信息。
定义方法:

List getEmployeesByIn(List ids);

实现:


foreach 标签属性说明:

  • collection:用于指定参数的类型,可以是 list,也可以是 set,还可以是 map,还可以是 array。
  • item:用于遍历时的临时变量
  • open:开始符号
  • close:关闭符号
  • separator:分割符
3.5.2,批量插入

定义方法:

void batchInsert(List emps);

实现:


    insert into tb_employee(name,age) values
    
        (#{emp.name}, #{emp.age})
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/959279.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号