`

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-generator.zip

    mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...

    MyBatis-Plus 的官方示例(mybatis-plus-samples-master.zip)

    本工程为 MyBatis-Plus 的官方示例,项目结构如下: mybatis-plus-sample-quickstart: 快速开始示例 mybatis-plus-sample-quickstart-springmvc: 快速开始示例(Spring MVC版本) mybatis-plus-sample-reduce-...

    MyBatis-Plus入门+MyBatis-Plus文档手册 中文pdf高清版.rar

    mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中...《MyBatis-Plus入门文档》主要介绍了MyBatis-Plus入门使用,以及关于mybatis-plus的更多介绍及特性,感兴趣的可以下载学习一下

    mybatis-3-config.dtd mybatis-3-mapper.dtd

    在MyBatis中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和规则。 首先,让我们深入了解一下`mybatis-3...

    mybatis-plus-boot-starter-3.5.1-API文档-中文版.zip

    赠送jar包:mybatis-plus-boot-starter-3.5.1.jar; 赠送原API文档:mybatis-plus-boot-starter-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-boot-starter-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-...

    mybatis-generator-config_1_0.dtd

    mybatis-generator-config_1_0.dtd文件存在于mybatis-generator-core-1.3.2.jar包中,路径如下org/mybatis/generator/config/xml/mybatis-generator-config_1_0.dtd 可以设置开发工具的dtd配置,配置...

    mybatis-spring-1.3.1.jar下载

    MyBatis-Spring 1.3.1 是一个重要的Java库,它为MyBatis持久层框架和Spring框架提供了一座桥梁,使得两个强大的库能够无缝集成。这个版本的jar文件是开发者在使用MyBatis与Spring进行项目开发时必不可少的组件。下面...

    mybatis-plus-extension-3.5.1-API文档-中英对照版.zip

    赠送jar包:mybatis-plus-extension-3.5.1.jar; 赠送原API文档:mybatis-plus-extension-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-extension-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...

    mybatis-spring-2.0.0-API文档-中文版.zip

    赠送jar包:mybatis-spring-2.0.0.jar; 赠送原API文档:mybatis-spring-2.0.0-javadoc.jar; 赠送源代码:mybatis-spring-2.0.0-sources.jar; 赠送Maven依赖信息文件:mybatis-spring-2.0.0.pom; 包含翻译后的API...

    mybatis-plus 实践及架构原理

    Mybatis-Plus尽可能地不改变原有SQL的写法,避免在代码中直接编写SQL语句,以提高代码的可维护性和可读性。 4. Mybatis-Plus的配置: - Maven依赖配置:通过Maven坐标将Mybatis-Plus添加到项目中,从而实现对单表...

    mybatis-plus-annotation-3.5.1-API文档-中文版.zip

    赠送jar包:mybatis-plus-annotation-3.5.1.jar; 赠送原API文档:mybatis-plus-annotation-3.5.1-javadoc.jar; 赠送源代码:mybatis-plus-annotation-3.5.1-sources.jar; 赠送Maven依赖信息文件:mybatis-plus-...

    mybatis-plus源码(mybatis-plus-3.5.1.zip)

    MyBatis-Plus是MyBatis的扩展框架,它提供了许多高级特性,使得在实际开发中操作数据库变得更加简便。此源码包`mybatis-plus-3.5.1.zip`包含了MyBatis-Plus 3.5.1版本的全部源代码,有助于我们深入理解其内部实现...

    mybatis-spring-2.0.6-API文档-中文版.zip

    赠送jar包:mybatis-spring-2.0.6.jar; 赠送原API文档:mybatis-spring-2.0.6-javadoc.jar; 赠送源代码:mybatis-spring-2.0.6-sources.jar; 赠送Maven依赖信息文件:mybatis-spring-2.0.6.pom; 包含翻译后的API...

    mybatis-plug.jar和 mybatis-plug的安装说明

    MyBatis-Plus是一个强大的扩展库,它是MyBatis框架的增强工具,旨在简化开发,减少常规 CRUD(创建、读取、更新、删除)操作的代码量。在本指南中,我们将详细介绍如何安装和使用mybatis-plus.jar以及相关的mybatis-...

    mybatis-spring-boot-autoconfigure-1.3.2-API文档-中英对照版.zip

    赠送jar包:mybatis-spring-boot-autoconfigure-1.3.2.jar; 赠送原API文档:mybatis-spring-boot-autoconfigure-1.3.2-javadoc.jar; 赠送源代码:mybatis-spring-boot-autoconfigure-1.3.2-sources.jar; 赠送...

    开发工具 mybatis-3.4.2

    开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2开发工具 mybatis-3.4.2...

Global site tag (gtag.js) - Google Analytics