1.prefix 前缀增加的内容

2.suffix 后缀增加的内容

3.prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了 ‘and

select * from User where name='zhangsan' and age='20';
<select id='queryUser'>select * from User<trim prefix='where' prefixOverrides='and'><if test="name != null and name != ''">name = #{name}</if><if test="age !=null and age !=''">and age = #{age}</if></trim>
<select>

第一个条件前面没有任何符号,第二个条件要加上and,否则sql语句会报错。很理想的状态是第一个和第二个都有值,但是既然判断,说明也可能会没有值,当第一个name没有值的时候,这个时候sql语句就会是 select * from User where and age='',很明显这个sql语句语法存在问题。在这里标签属性prefixOverrides就起作用了,它会让前缀where覆盖掉第一个and。覆盖之后的是:select * from User where age='';

4.suffixOverrides 后缀需要覆盖的内容,一般是最后一个数据的后面符号,如:set值的时候,最后一个值的后面多一个逗号‘,’

 <insert id="insertSelective" parameterType="org.javaboy.vhr.model.Salary">insert into salary<trim prefix="(" suffix=")" suffixOverrides=","><if test="id != null">id,</if><if test="basicSalary != null">basicSalary,</if><if test="bonus != null">bonus,</if><if test="lunchSalary != null">lunchSalary,</if><if test="trafficSalary != null">trafficSalary,<if test="name != null">name,</if></trim><trim prefix="values (" suffix=")" suffixOverrides=","><if test="id != null">#{id,jdbcType=INTEGER},</if><if test="basicSalary != null">#{basicSalary,jdbcType=INTEGER},</if><if test="bonus != null">#{bonus,jdbcType=INTEGER},</if><if test="lunchSalary != null">#{lunchSalary,jdbcType=INTEGER},</if><if test="trafficSalary != null">#{trafficSalary,jdbcType=INTEGER},</if><if test="name != null">#{name,jdbcType=VARCHAR},</if></trim></insert>

加了suffixOverrides=","结果: insert into salary (id,basicSalary,bonus,lunchSalary,trafficSalary,name) values (#{id},#{basicSalary},#{bonus},#{lunchSalary},#{trafficSalary},#{name})

不加suffixOverrides=","结果: insert into salary (id,basicSalary,bonus,lunchSalary,trafficSalary,name) values (#{id},#{basicSalary},#{bonus},#{lunchSalary},#{trafficSalary},#{name})

加了suffixOverrides=","的话,本例中最后一个条件中的逗号“,”会被后缀覆盖掉

mybatis框架xml中trim中的prefix与suffix等标签的作用相关推荐

  1. myBatis的xml映射文件中传入list集合与数组做条件

    mybatis的xml映射文件中传入list集合与数组做条件 1.传list集合参数 1.1sql映射: <select id="queryDeptListByBankLevelAnd ...

  2. Mybatis框架面试典籍30+ | 大别山码将

    Mybatis 什么是MyBatis?优缺点及适用场景 Mybatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数 ...

  3. MyBatis 框架的思想及其第一次使用

    MyBatis 框架的思想及其第一次使用 引言 ORM 框架 MyBatis 核心 MyBatis 的第一次使用 一.创建一个 Spring MVC 项目 二.搭好配置文件 概览步骤 步骤1 步骤2 ...

  4. 【MyBatis框架】核心配置文件讲解

    14天阅读挑战赛 目录 1. 引言 2. 主要元素 3. 常用配置元素介绍 3.1 < properties > 3.2 < settings > 3.3 < typeA ...

  5. mybatis框架的介绍及使用

    mybatis是什么? 1.mybatis 是一个持久层框架, 主要用于来对***数据库***进行操作,mybtais 底层还是对jdbc的封装. 在工作中只是程序员不需要关注底层怎么封装,需要会使用 ...

  6. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  7. mybatis中xml之trim属性

    mybatis的xml中trim标签有四个属性 1.prefix 前缀增加的内容 2.suffix 后缀增加的内容 3.prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多 ...

  8. java 获取sqlsession_获取Java的MyBatis框架项目中的SqlSession的方法

    从XML中构建SqlSessionFactory从XML文件中构建SqlSessionFactory的实例非常简单.这里建议你使用类路径下的资源文件来配置. String resource = &qu ...

  9. flink 流式处理中如何集成mybatis框架

    flink 中自身虽然实现了大量的connectors,如下图所示,也实现了jdbc的connector,可以通过jdbc 去操作数据库,但是flink-jdbc包中对数据库的操作是以ROW来操作并且 ...

  10. 关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案

    关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案 参考文章: (1)关于mybatis的xml文件中使用 >= 或者 <= 号报错的解决方案 (2)ht ...

最新文章

  1. npm-run 自动化
  2. mapreduce.job.reduce.slowstart.completedmaps
  3. 企业运维监控平台架构设计与实现
  4. ACR2010_MTX单药治疗临床疗效良好但放射学进展的早期RA患者的预测因素和临床意义...
  5. textarea 转换 html,textarea html标签转换为纯文本
  6. 四十、ETL工具的输入步骤
  7. Django从理论到实战(part1)--虚拟环境
  8. Win7_刻录DVD
  9. android仿新浪引导界面
  10. python的运行方式有哪两种_Python基础:Python运行的两种基本方式
  11. 2017 10 13
  12. 学习yaf(二) 使用Bootstrap
  13. HDU 4630 No Pain No Game (线段树+离线)
  14. Linux设备驱动开发详解
  15. 海康威视4G球机对接萤石云平台获取直播视频列表 ----- java
  16. 微信公众号涨粉攻略大全及实战
  17. PCB中的SOLD MASK和阻抗开窗
  18. LZY的CQU水下机器人视觉学习笔记(一)
  19. ulp(unit in the last place)是什么意思
  20. do还是doing imagine加to_“imagine to do”与“imagine doing”的区别是什么?

热门文章

  1. 30个让你大呼惊艳的数据可视化作品!
  2. 单片机广告灯实验总结_关于单片机的一些小实验lowbar;01点亮一个灯
  3. HX711 压力调试 51程序
  4. 电脑安全证书错误怎么处理比较好
  5. 如何给Ubuntu系统清理垃圾
  6. 知识付费垂直细分-育儿知识付费社区
  7. Facebook登录的时候验证邮箱
  8. Alink漫谈(十一) :线性回归 之 L-BFGS优化
  9. ansiblea基本使用
  10. 【记录】关于知乎“国外博士的能力真的比国内博士强吗”的讨论