_parameter
_parameter 表示当前传入的参数,如果查询的时候传入的参数只有一个,则使用 _parameter
E getById(Integer id);
<select id="getById" parameterType="int" resultMap="BaseResultMap"> SELECT * FROM 库名.表名 WHERE id = #{_parameter} </select>
if判断
<select id="getUsers" parameterType="int" resultType="User"> SELECT id, name, phone, email FROM users WHERE 1=1 <if test="_parameter != null"> and id > #{_parameter} </if> </select>
大量重复的字段
<sql id="HHHHH"> id,name </sql>
引用写法
<include refid="HHHHH"/>
foreach
1、item表示集合中每一个元素进行迭代时的别名,
2、index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,
3、open表示该语句以什么开始,
4、separator表示在每次进行迭代之间以什么符号作为分隔符,
5、close表示以什么结束,
<update id="updateBatch"> <foreach item="item" index="index" collection="list" open="" close="" separator=";"> <if test="item.statusType.toString() == 'DELETED'"> DELETE FROM 库名.表名 WHERE id = #{item.id} </if> <if test="item.statusType.toString() != 'DELETED'"> UPDATE 库名.表名 <set> modifier = #{item.modifier,jdbcType=CHAR}, <if test="item.account != null"> account = #{item.account,jdbcType=VARCHAR}, </if> <if test="item.name != null"> name = #{item.name,jdbcType=VARCHAR}, </if> </set> where 库名.表名.id =#{item.id} </if> </foreach> </update>
set
一定要非空判断
set为空会报错
<update id="updateFlow"> UPDATE ufis.pid SET <strong><span style="font-size:24px;"></span></strong><pre name="code" class="html"><if test="<pre name="code" class="html"><pre name="code" class="html">used_flow != null"></pre> <pre></pre> <pre></pre> <pre></pre> <p></p> <pre></pre> <pre></pre> used_flow = used_flow + #{flow},<br> </if><br> change_flow_time =#{changeFlowTime}WHEREid = #{id}</update> <pre></pre> <br> <br> <p></p> </pre></pre>
以上所述是小编给大家介绍的MyBatis常用标签大全,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
主要内容:示例在 MyBatis 中除了使用 if+where 实现多条件查询,还有一个更为灵活的元素 trim 能够替代之前的做法。 trim 一般用于去除 SQL 语句中多余的 AND 关键字、逗号 或者给 SQL 语句前拼接 where、set 等后缀,可用于选择性插入、更新、删除或者条件查询等操作。trim 语法格式如下。 trim 中属性说明如下。 属性 描述 prefix 给SQL语句拼接的前缀,为
主要内容:示例每个数据库的拼接函数或连接符号都不同,例如 MySQL 的 concat 函数、Oracle 的连接符号“||”等。这样 SQL 映射文件就需要根据不同的数据库提供不同的实现,显然比较麻烦,且不利于代码的移植。幸运的是,MyBatis 提供了 bind 标签来解决这一问题。 bind 标签可以通过 OGNL 表达式自定义一个上下文变量。 比如,按照网站名称进行模糊查询,SQL 映射文件如下。 bi
主要内容:示例前面我们学习了如何使用 Mybatis if、 where、 trim 等动态语句来处理一些简单的查询操作。对于一些 SQL 语句中含有 in 条件,需要迭代条件集合来生成的情况,可以使用 foreach 来实现 SQL 条件的迭代。 Mybatis foreach 标签用于循环语句,它很好的支持了数据和 List、set 接口的集合,并对此提供遍历的功能。语法格式如下。 foreach 标签
主要内容:示例在 Mybatis 中,update 语句可以使用 set 标签动态更新列。set 标签可以为 SQL 语句动态的添加 set 关键字,剔除追加到条件末尾多余的逗号。 示例 要求:根据 id 修改网站名称或网址(本节示例基于《 第一个MyBatis程序》一节的代码实现)。 WebsiteMapper.xml 代码如下。 WebsiteMapper 类中方法如下。 测试类代码如下。 输出结果如下。
主要内容:示例细心的读者可能会发现,我们在《 MyBatis choose、when和otherwise语句》一节的 SQL 语句中加入了一个条件“1=1”,如果没有加入这个条件,那么可能就会变成下面这样一条错误的语句。 显然以上语句会出现 SQL 语法异常,但加入“1=1”这样的条件又非常奇怪,所以 MyBatis 提供了 where 标签。 where 标签主要用来简化 SQL 语句中的条件判断,可以自动处
MyBatis if 类似于 Java 中的 if 语句,是 MyBatis 中最常用的判断语句。使用 if 标签可以节省许多拼接 SQL 的工作,把精力集中在 XML 的维护上。 if 语句使用方法简单,常常与 test 属性联合使用。语法如下。 当判断条件为 true 时,才会执行所包含的 SQL 语句。 最常见的场景是在 if 语句中包含 where 子句,例如。 以上代表表示根据网站名称去