`

mybatis-写法技巧

xml 
阅读更多

1.trim prefix prefixOverrides suffix suffixOverrides

---通常用法---

例子1-1(以字符“where”覆盖首个“and”或"or”字符):

<!--prefix & prefixOverrides-->
<select id="findUserById" resultType="user">
	 select * from user
	 <trim prefix="where" prefixOverrides="and|or ">
		 <if test="id != null">
			id=#{id}
		 </if>
		 and deleteFlag=0;
	 </trim>
 </select>

 等效于

<select id="findUserById" resultType="user">
	 select * from user
	 <where>
		 <if test="id != null">
			id=#{id}
		 </if>
		 and deleteFlag=0;
	 </where>
 </select>

 

当id为空,生成的sql语句为:

//deleteFlag前的"and"被去掉
select * from user where deleteFlag=0;

 

 

例子1-2(为trim括起来的语句添加"set"字符前缀,并且覆盖去掉最后面的","字符):

<!--主要看suffixOverrides的用法-->
<update id="updateUser" parameterType="com.dy.entity.User">
	 update user
	 <trim prefix="set" suffixOverrides=",">
		<if test="name != null">name = #{name},</if>
		 <if test="password != null">password = #{password},</if> 
     </trim>
	 <where>
		 <if test="id != null">
			id = #{id}
		 </if>
		 and deleteFlag = 0;
	 </where>
</update>

  等效于

<update id="updateUser" parameterType="com.dy.entity.User">
	 update user
	 <set>
		 <if test="name != null">name = #{name},</if>
		 <if test="password != null">password = #{password},</if> 
	 </set>
	 <where>
		 <if test="id != null">
			id = #{id}
		 </if>
		 and deleteFlag = 0;
	 </where>
</update>

 

生成的sql语句为:

//password后的","被去掉
update user set name = #{name},password = #{password} where id = #{id} and deleteFlag = 0;

 

注:prefix prefixOverrides suffix suffixOverrides并非需要配套使用,可以任意组合或者单个使用,具体情况按实际需求

 

2.foreach

<select id="selectPostIn" resultType="domain.blog.Post">
     SELECT *
     FROM POST P
     WHERE ID in
     <foreach item="item" index="index" collection="list"
         open="(" separator="," close=")">
         #{item}
     </foreach>
</select>

 

分享到:
评论

相关推荐

    你应该知道的这些Mybatis-Plus使用技巧(小结)

    以下是一些你应该了解的 Mybatis-Plus 使用技巧: 1. **条件查询**: - `QueryWrapper`:这是 Mybatis-Plus 提供的基本查询条件包装类,你可以通过调用它的各种方法(如 eq, ne, gt, lt 等)来设置 SQL 查询条件。...

    mpg-master.zip

    《深入解析Mybatis-Plus与Java逆向工程实践》 Mybatis-Plus(简称MP)是Mybatis的一个扩展,它提供了许多便捷的...对于Java后端开发者来说,熟练掌握Mybatis-Plus和逆向工程技巧,无疑能提升项目开发的效率和质量。

    【小技巧】MyBatis 中 SQL 写法技巧小总结.docx

    你真的会写一手好SQL吗?你真的深入了解数据库吗?你真的对MYSQL很理解吗?来自一线大厂资深数据库开发工程师的分享,纯粹干货,值得拥有。

    Mybatis在Mapper.xml文件中的转义字符处理方式.pdf

    通过这些案例,可以清晰地看到Mybatis在处理特殊字符和进行复杂SQL语句编写时的各种转义方法和技巧。开发者应灵活运用这些技术,确保SQL语句的正确性及可读性。总之,正确处理Mybatis在Mapper.xml文件中的转义字符,...

    MyBatis传入集合 list 数组 map参数的写法

    在MyBatis中,处理集合参数如list、array以及map是非常常见的操作。这些参数通常用于构建动态SQL,特别是当需要在`IN`语句中使用多个值时。...通过熟练掌握这些技巧,开发者可以更高效地利用MyBatis进行数据库操作。

    Mybatis 中 Oracle 的拼接模糊查询及用法详解

    Mybatis 中 Oracle 的拼接模糊查询及用法是非常重要的知识点,本文详细介绍了拼接模糊查询的正确写法、技巧和错误排查。开发者可以根据实际情况选择合适的写法,以便更好地使用 Mybatis 实现 Oracle 数据库的查询...

    Mybaits通用的10种写法总结大全

    本文将深入探讨MyBatis中的10种通用写法,这些技巧对于提升开发效率和代码可维护性至关重要。 1. **`&lt;foreach&gt;`标签**: - `foreach`标签用于循环遍历集合,并将其内容插入到SQL语句中。它的主要属性包括: - `...

    开题报告的写法指导,详细

    在本例中,标题为“开题报告的写法指导,详细”,表明这是一个关于如何撰写开题报告的指南,旨在帮助学生或研究人员了解开题报告的各个要素和写作技巧。 描述中提到的“开题报告的写作指导,内容详尽,文档实用”,...

    SSH分页技术详解与实例

    7. **实际项目中的适应性**:在实际项目中,可能需要根据数据库类型和具体需求调整分页SQL的写法,例如Oracle支持ROWNUM,而MySQL则可以使用LIMIT和OFFSET。 **优化技巧**: 1. **缓存**:对于不经常变动的数据,...

Global site tag (gtag.js) - Google Analytics