MyBatis:7、动态 Sql
发布日期:2021-05-07 00:01:35 浏览次数:22 分类:技术文章

本文共 3058 字,大约阅读时间需要 10 分钟。

动态Sql

使用动态 SQL 可简化代码的开发,减少开发者的工作量,程序可以自动根据业务参数来决定 SQL 的组成。

  • if 标签

    if 标签可以自动根据表达式的结果来决定是否将对应的语句到 SQL 中,如果条件不成立则不添加,如果条件成立则添加。

  • where 标签

    where 标签可以自动判断是否要删除语句块中的 and 关键字,如果检测到 where 直接跟 and 拼接,则自动删除 and 。通常情况下 if 和 where 结合使用。

  • choose、when 标签

    choose when 标签会按顺序判断其内部 when 标签中的 test 条件是否成立,如果有一个成立,则 choose 结束。

  • trim 标签

    trim 标签中的 prefix 和 suffix 属性会被用于生成实际的 SQL 语句,会和标签内部的语句进行拼接,如果语句前后出现了 prefixOverrides 或者 suffixOverrides 属性中指定的值,MyBatis 框架会自动将其删除。

    在这里,where 和 and 一遇到就会被删除。

  • set 标签

    update t_account
    username=#{username},
    password=#{password},
    age=#{age},
    where id=#{id}

    set 标签用于 update 操作,会自动根据参数选择

  • foreach 标签

    public List
    findByIds(Account account);
    package com.xiaoxin.test;import com.xiaoxin.entity.Account;import com.xiaoxin.repository.AccountRepository;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.util.ArrayList;import java.util.List;import java.io.IOException;import java.io.InputStream;public class Test8 {
    public static void main(String[] args) throws IOException {
    InputStream inputStream = Resources.getResourceAsStream("config.xml"); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory factory = builder.build(inputStream); SqlSession sqlSession = factory.openSession(); AccountRepository accountRepository = sqlSession.getMapper(AccountRepository.class); Account account = new Account(); account.setId(1L); account.setUsername("陈小鑫"); account.setPassword("456789"); account.setAge(33); List
    ids = new ArrayList
    (); ids.add(1L); ids.add(12L); ids.add(13L); account.setIds(ids); System.out.println(accountRepository.findByIds(account)); sqlSession.close(); }}

    foreach 标签可以迭代生成一系列值,这个标签主要用于 SQL 的 in 语句。

上一篇:剑指offer之面试题23:链表中环的入口节点
下一篇:MyBatis:6、MyBatis缓存

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月04日 15时27分30秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章