MyBatis trim标签
mybatis 标签 trim
2023-06-13 09:12:03 时间
在 MyBatis 中除了使用 if+where 实现多条件查询,还有一个更为灵活的元素 trim 能够替代之前的做法。
trim 一般用于去除 SQL 语句中多余的 AND 关键字、逗号,或者给 SQL 语句前拼接 where、set 等后缀,可用于选择性插入、更新、删除或者条件查询等操作。trim 语法格式如下。
trim prefix= 前缀 suffix= 后缀 prefixOverrides= 忽略前缀字符 suffixOverrides= 忽略后缀字符 SQL语句 /trim
trim 中属性说明如下。
本节示例基于《第一个MyBatis程序》一节的代码实现。
下面我们利用 trim 实现与 where 元素相同的效果。
要求:根据网站名称或网址对网站进行模糊查询。
WebsiteMapper.xml 代码如下。
select id= selectWebsite resultType= net.biancheng.po.Website SELECT id,name,url,age,country FROM website trim prefix= where prefixOverrides= and if test= name != null and name != AND name LIKE CONCAT ( % ,#{name}, % ) /if if test= url!= null AND url like concat ( % ,#{url}, % ) /if /trim /select
WebsiteMapper 类中方法如下。
public List Website selectWebsite(Website website);
测试类代码如下。
public class Test { public static void main(String[] args) throws IOException { // 读取配置文件mybatis-config.xml InputStream config = Resources.getResourceAsStream( mybatis-config.xml // 根据配置文件构建 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config); // 通过SqlSessionFactory创建SqlSession SqlSession ss = ssf.openSession(); Website site = new Website(); site.setname( 编程 site.setUrl( http List Website siteList = ss.selectList( net.biancheng.mapper.WebsiteMapper.selectWebsite , site); for (Website ws : siteList) { System.out.println(ws); }
输出结果如下。
DEBUG [main] == Preparing: SELECT id,name,url,age,country FROM website where name LIKE CONCAT ( % ,?, % ) AND url like concat ( % ,?, % )
DEBUG [main] == Parameters: 编程(String), http(String)
DEBUG [main] == Total: 1
Website[id=1,name=编程帮,url=https://www.biancheng.net/,age=10,country=CN]
24116.html
Mybatis相关文章
- 面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。
- 深入理解mybatis原理(五) MyBatis缓存机制的设计与实现
- 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项
- mybatis 分页查询避免两次查询同时返回总数和数据
- mybatis的常用动态sql标签
- Mybatis核心组件介绍
- mybatis看这一篇就够了,简单全面一发入魂
- SSM-Mybatis(1)[通俗易懂]
- mybatis trim标签
- ssm框架过时了吗_mybatis分页插件
- Java神操作之利用Mybatis的resultMap的id标签进行分组映射「建议收藏」
- MyBatis——【入门级】简单了解myBatis
- MyBatis——【第二章】mybatis动态sql(分页)
- MyBatis框架:第三章:传统方式mybatis的增,删,改,查实现
- Mybatis–RowBounds
- MyBatis框架:第十章:mybatis缓存
- 懒加载(Lazy Loading) – MyBatis懒加载 – Spring懒加载
- Mybatis Generator使用
- MyBatis-Plus 注解方式(一对多、多对一)
- 基于Spring boot和Mybatis外卖项目瑞吉外卖Day9-Redis的快速入门
- Oracle在Mybatis中SQL语句的配置方法
- mybatis中sql标签、where标签、foreach标签用法详解数据库
- idea + Maven + Spring + myBatis的单元测试详解编程语言
- mybatis xml文件中用 if 标签判断字符串是否相等详解编程语言
- Java数据持久层框架 MyBatis之API学习三(XML 映射配置文件)详解编程语言
- spring boot集成mybatis 自动生成实体类和mapper文件、Dao层详解编程语言
- MyBatis中的insert、update、delete和sql标签
- MyBatis foreach标签
- 简易搭建Mybatis连接Oracle数据库(mybatis连接oracle)