Mybatis标签使用

news/2025/6/6 7:52:33

Mybatis标签使用

  • 1、If Test
  • 2、Trim
  • 3、Foreach
  • 其他
    • Mybatis删除语法和转义字符使用
    • Mybatis的sql片段的使用


1、If Test

if test标签介绍
if 标签可以通过判断传⼊的值来确定查询条件,test 指定⼀个OGNL表达式
常⻅写法

//当前字段符合条件才更新这个字段的值
<if test='title != null and id == 87 '> title = #{title}, </if>
<if test="title!=null"> title = #{title}, </if>

2、Trim

代码(⾥⾯包含⼀个惨痛教训,⼀定要看pojo类⾥⾯的是基本数据类型,还是包装数据类型)

    <update id="updateVideoSelective" parameterType="net.xdclass.online_class.domain.Video">update video<!-- prefix前缀,suffixOverrides去除后缀 --><trim prefix="set" suffixOverrides=","><if test="title != null ">title = #{title,jdbcType=VARCHAR},</if><if test="summary != null ">summary = #{summary,jdbcType=VARCHAR},</if><if test="coverImg != null ">cover_img = #{coverImg,jdbcType=VARCHAR},</if><if test="price != 0 ">price = #{price,jdbcType=INTEGER},</if><if test="createTime !=null ">create_time = #{createTime,jdbcType=TIMESTAMP},</if><!-- 特别注意: ⼀定要看pojo类⾥⾯的是基本数据类型,还是包装数据类型--><if test="point != null ">point = #{point,jdbcType=DOUBLE},</if></trim>whereid = #{id}</update>

3、Foreach

foreach: ⽤于循环拼接的内置标签,常⽤于 批量新增、in查询等常⻅

包含以下属性:collection:必填,值为要迭代循环的集合类型,情况有多种(不是属性名而是类型)⼊参是List类型的时候,collection属性值为list⼊参是Map类型的时候,collection 属性值为map的key值item:每⼀个元素进⾏迭代时的别名index:索引的属性名,在集合数组情况下值为当前索引值,当迭代对象是map时,这个值是map的keyopen:整个循环内容的开头字符串close:整个循环内容的结尾字符串separator: 每次循环的分隔符

例子

    <!--批量插⼊--><insert id="addBatch"parameterType="net.xdclass.online_class.domain.Video"useGeneratedKeys="true" keyProperty="id" keyColumn="id">INSERT INTO `video` ( `title`, `summary`, `cover_img`, `price`,`create_time`, `point`)VALUES<foreach collection="list" item="video" separator=",">(#{video.title,jdbcType=VARCHAR},#{video.summary,jdbcType=VARCHAR},#{video.coverImg,jdbcType=VARCHAR},#{video.price,jdbcType=INTEGER},#{video.createTime,jdbcType=TIMESTAMP},#{video.point,jdbcType=DOUBLE})</foreach></insert>

其他

Mybatis删除语法和转义字符使用

delete删除语法(类型为map)

需求:删除某个时间段之后 且⾦额⼤于 10元的数据

//map里的方法
int deleteByCreateTimeAndPrice(Map<String,Object> map);
<!--    <delete id="deleteByCreateTimeAndPrice" parameterType="java.util.Map">--><delete id="deleteByCreateTimeAndPrice" parameterType="Map">delete from video where create_time <![CDATA[ > ]]> #{createTime} and price <![CDATA[ >= ]]> #{price}</delete>

为什么要转义字符:
由于MyBatis的sql写在XML⾥⾯, 有些sql的语法符号和xml⾥⾯的冲突

⼤于等于 <![CDATA[ >= ]]>
⼩于等于 <![CDATA[ <= ]]>

Mybatis的sql片段的使用

根据业务需要,⾃定制要查询的字段,并可以复⽤

    <sql id="base_video_field">id,title,summary,cover_img</sql><select id="selectById" parameterType="java.lang.Integer" resultType="Video">select<include refid="base_video_field"/>from video whereid = #{video_id,jdbcType=INTEGER}</select><select id="selectListByXML" resultType="Video">select<include refid="base_video_field"/>from video</select>
文章来源:https://blog.csdn.net/weixin_46146718/article/details/114379738
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-18466.html

相关文章

DTN学习,theONE模拟器网络相关资料整理

下面是一个百度空间的&#xff1a; http://hi.baidu.com/jensenliao 博客园的一篇博客&#xff1a;theONE模拟器简介&#xff08;主要讲述&#xff0c;软件配置&#xff0c;软件结构&#xff09; http://www.cnblogs.com/dreamfactory/archive/2012/07/27/2612215.html 博客园&…

ArcGIS 10开发迁移策略(待续)

1.更改 ESRI.ArcGIS.ADF 程序集 ArcGIS 10 中&#xff0c; ADF 程序集中的功能被分散到不同的程序集中&#xff0c;如果将 ArcGIS 9.3 下 开发的自定义组件迁移到 ArcGIS 10 中&#xff0c;我们需要移除 ESRI.ARCGIS.ADF 程序集&#xff0c;添加 ESRI.ArcGIS.ADF.Local 程序集。…

spark常用RDD算子 - take(),takeOrdered(),top(),first()

take()&#xff0c;takeOrdered()&#xff0c;top() 返回一个列表&#xff0c;first()返回一个值 take def take(num: Int): Array[T] take用于获取RDD中从0到num-1下标的元素&#xff0c;不排序。 top def top(num: Int)(implicit ord: Ordering[T]): Array[T] top函数用…

计算机stem项目计划书,在“STEM+项目”中培养学生计算思维的实践探究

摘要STEM教育强调跨学科的整合学习&#xff0c;尤其强调通过以工程为核心的设计和制造活动来解决生活中真实而有意义的问题。美国卡内基梅隆大学周以真教授提出&#xff0c;计算思维是一个运用计算机科学基础概念进行系统设计、解决问题与人类行为理解的过程。以上两种阐述在真…

Mybatis 查询返回List集合、map集合、List<Map>集合

文章目录Map类型List类型List&#xff1c;Map&#xff1e;类型Map类型 xml中 <select id"selectUser " resultType"java.util.HashMap"> </select> Dao接口中 Map<String,Object> selectUser(); List类型 xml中 <select id&…

Mono 3.0.12 支持可移植类库

Mono 3.0.12已于6月19日发布。对跨平台开发者而言&#xff0c;对可移植类库的支持可能是该版本最重要的变化。该技术可以使一个DLL支持.NET、Windows Store、Windows Phone、Silverlight、ios、android。支持可移植类库的相关介绍可以看Msdn杂志的一篇文章介绍《将旧 .NET 库迁…

spark常用RDD算子 - zipPartitions(),zip()

zipPartitions算子 zipPartitions函数将多个RDD按照partition组合成为新的RDD&#xff0c; 该函数需要组合的RDD具有相同的分区数&#xff0c;但对于每个分区内的元素数量没有要求。该算子scala版本和java版本&#xff0c;传递的参数不一样 scala版本&#xff1a;可以传一个rdd…

爬虫--用cookie访问任意网页

#!/usr/bin/env python # -*- coding: utf-8 -*- ############################################# # File : requestAnyURLWithCookie.py # Author : lucasysfeng # Revision : 2014-06-13 11:08:00 # Description : 用cookie访问任何网页(已经有cookie了,不需要…

SpringBoot整合事务回滚

SpringBoot整合事务回滚一、自动回滚二、手动回滚一、自动回滚 自动回滚有个前提条件&#xff0c;它一定必须是public的&#xff0c;其次&#xff0c;在它的方法上必须要添加上Transactional 注解。 在方法或者类上加上注解Transactional 1.Error一定会回滚。 2.异常中&#x…

删除域控中的一个服务器,删除 Active Directory 域服务

在域控制器上运行 Dcpromo.exe 时&#xff0c;Active Directory 域服务安装向导检测到已在服务器上安装了 Active Directory 域服务 (AD DS)。然后&#xff0c;该向导将启动并提示您输入卸载服务器上的 AD DS 所需的信息。您可以采用以下方式在域控制器中启动 Active Directory…