在mybatis中去除多余的前缀或者后缀操作

A.where 标签会自动删除第一个多余的and或者or,set标签会自动删除最后一个','

B.trim标记,是一个格式化的标记,可以完成set或者是where标记的功能,如下代码:

1、

select * from user
<trim prefix="WHERE" prefixoverride="AND |OR">
<if test="name != null and name.length()>0"> AND name=#{name}</if>
<if test="gender != null and gender.length()>0"> AND gender=#{gender}</if>
</trim>

假如说name和gender的值都不为null的话打印的SQL为:select * from user where name = 'xx' and gender = 'xx'

上面两个属性的意思如下:

prefix:前缀

prefixoverride:去掉第一个and或者是or

2、

update user

<trim prefix="set" suffixoverride="," suffix=" where id = #{id} ">
<if test="name != null and name.length()>0"> name=#{name} , </if>
<if test="gender != null and gender.length()>0"> gender=#{gender} , </if>
</trim>

假如说name和gender的值都不为null的话打印的SQL为:update user set name='xx' , gender='xx' where id='x'

自动加了一个set前缀和where后缀,上面三个属性的意义如下,其中

prefix意义如上:

suffixoverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)

suffix:后缀

补充知识:mybatis-plus 表名前缀 taablePrefix

这样类的前面不用指定表名

以上这篇在mybatis中去除多余的前缀或者后缀操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis 动态SQL的几种实现方法

    案例sql脚本 DROP DATABASE IF EXISTS `javacode2018`; CREATE DATABASE `javacode2018`; USE `javacode2018`; DROP TABLE IF EXISTS t_user; CREATE TABLE t_user( id int AUTO_INCREMENT PRIMARY KEY COMMENT '用户id', name VARCHAR(32) NOT NULL DEFAULT '' COMMENT '用户名'

  • 解决Mybatis-plus找不到对应表及默认表名命名规则的问题

    错误截图 在测试使用Mybatis-plus查询数据库时报错 报错信息大概意思时在数据库中没有user这张表 而实际上确实没有 尝试 我这里application.ymml没有与Mybatis-plus的相关配置 为探究在没有配置的情况下时Mybatis-plus默认时按照什么来定义表名的 猜想有两个地方有可能(因为只有这两个地方是user) 先测试第一个 可以看到和之前的错误一样没有效果 测试第二个点 虽然报错,但是证明了在没有配置表名的情况下mybatis-plus是默认按照实体类名去查询数

  • 详解Mybatis通用Mapper介绍与使用

    使用Mybatis的开发者,大多数都会遇到一个问题,就是要写大量的SQL在xml文件中,除了特殊的业务逻辑SQL之外,还有大量结构类似的增删改查SQL.而且,当数据库表结构改动时,对应的所有SQL以及实体类都需要更改.这工作量和效率的影响或许就是区别增删改查程序员和真正程序员的屏障.这时,通用Mapper便应运而生-- 什么是通用Mapper 通用Mapper就是为了解决单表增删改查,基于Mybatis的插件.开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删

  • 在mybatis中去除多余的前缀或者后缀操作

    A.where 标签会自动删除第一个多余的and或者or,set标签会自动删除最后一个',' B.trim标记,是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND

  • C#字符串中去除多余的空格保留一个的实例

    在C#的字符串,其中有许多空格,现要求是把多余的空格去除保留一个.原理是使用Split()方法进行分割,分割有一个选项是RemoveEmptyEntries,然后再把分割后的字符串Join起来. string string1 = "AAaaA Oopps 32 211 44.8 69 15.9 C# 36.7 0.6 "; string[] arr = string1.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveE

  • MyBatis XML去除多余AND|OR前缀或逗号等后缀的操作

    1.通过trim格式化标记set或where功能 2.对于set自动删除最后一个",",对于where自动删除最后一个"and|or" 使用示例如下: 1. select * from user <trim prefix="WHERE" prefixOverride="AND |OR"> <if test="userName != null and userName.length()>0&qu

  • 在mybatis 中使用if else 进行判断的操作

    我就废话不多说了,大家还是直接看代码吧~ <!-- 查询物品的id --> <select id="checkItemsId" parameterType="pd" resultType="java.lang.Integer"> SELECT i.itemsid FROM pq_goods_items i <where> <!--方式一使用choose的方式查询--> <!-- <cho

  • python实现去除下载电影和电视剧文件名中的多余字符的方法

    本文实例讲述了python实现去除下载电影和电视剧文件名中的多余字符的方法,是一个非常实用的技巧,分享给大家供大家参考.具体如下: 有时候我们讨厌下载电影和电视剧文件名中的多余字符(如网址和广告字样),搞得文件名好长!不便于查看,这时候就可以使用下面的Python代码,自行修改即可. 具体实现代码如下: #!\usr\bin\env python # -*- coding: utf-8 -*- # Author: 吴徐平 # FileName: RefineFileName.py # Funct

  • mybatis中xml之trim属性说明

    mybatis的xml中trim标签有四个属性 1.prefix 前缀增加的内容 2.suffix 后缀增加的内容 3.prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了 'and' 4.suffixOverrides 后缀需要覆盖的内容,一般是最后一个数据的后面符号,如:set值的时候,最后一个值的后面多一个逗号',' 举几个例子: 1.根据用户姓名和年龄查询用户,有什么值就根据什么条件(目的是说明几个属性用法,可能例子不适用于

  • MyBatis中XML 映射文件中常见的标签说明

    SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出): cache – 对给定命名空间的缓存配置. cache-ref – 对其他命名空间缓存配置的引用. resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象. parameterMap – 已被废弃!老式风格的参数映射.更好的办法是使用内联参数,此元素可能在将来被移除. sql – 可被其他语句引用的可重用语句块. insert – 映射插入语句 update – 映射更新语句 delete –

  • Mybatis中Mapper标签总结大全

    一.标签分类 定义SQL语句 insert delete update select 配置关联关系 collection association 配置java对象属性与查询结果集中列名的对应关系 resultMap 控制动态SQL拼接 foreach if choose 格式化输出 where set trim 定义常量 sql 其他 include 二.标签总结 1. 基础SQL标签 1.1 查询select 标签属性 id 唯一的名称,对应dao中mapper的接口名称 paramterTy

  • Mybatis中xml的动态sql实现示例

    目录 动态SQL简介 一.#{}与${}区别#{}表示一个占位符,使用占位符可以防止sql注入, 二.传递包装类型 三.动态sql—类型 四.动态sql—详解 (一)if 语句处理 (二)choose (when,otherwize)语句处理 (三)trim 语句处理 (四)where 语句处理 (五)foreach 语句处理 动态SQL简介 动态 SQL 是 MyBatis 的强大特性之一. 如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接

  • MyBatis中关于SQL的写法总结

    目录 一.MyBatis – if 语句 二.MyBatis --choose 语句 三.MyBatis – trim 四.MyBatis – where 五.MyBatis – set 六.MyBatis – foreach 七.MyBatis – concat 八.MyBatis – sql片段 最近MyBatis使用较多,在这里简单总结一下MyBatis的sql写法 说简单一点mybatis就是写原⽣sql,官方都说了 mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在

随机推荐