mybatis常用标签

举报
小鲍侃java 发表于 2021/10/24 09:57:10 2021/10/24
【摘要】 ​ 1.select 标签表示为查询语法。 2.insert表示为插入语法。 3.update表示为修改语法。 4.delete表示为删除语法。 5.foreach表示为循环语法语法。<foreach collection="barcodeManageBo" item="object" separator="," open="(" close=")"> #{object.id}</f...

1.select 标签

表示为查询语法。

2.insert

表示为插入语法。

3.update

表示为修改语法。

4.delete

表示为删除语法。

5.foreach

表示为循环语法语法。

<foreach collection="barcodeManageBo" item="object" separator=","
			open="(" close=")">
			#{object.id}
</foreach>
  • open:以什么开始
  • close:以什么结束
  • separator:分隔符
  • collection:list名称
  • item:index名称

6.sql

表示可通用的sql片段,使用id可以引用。

<sql id="sqlvalues">
		<if test="code!=null or code !=''">#{code},</if>
		<if test="itemname !=null or itemname !=''">#{itemname},</if>
		<if test="criteria !=null or criteria !=''">#{criteria},</if>
</sql>

7.include

<include refid="sqlvalues"></include>

引用sql标签,作为sql一部分。

8.set

<set>
  <if test="typeName != null and typeName != ''">
        typeName ={typeName}, 
  </if>
  <if test="sort != null and sort != ''">sort = #{sort},</if>
</set>

update时使用set语法,在set时候省略最后一个符号。

9.trim

对sql值的替换。下文是将最后一个,替换成空,防止sql报错。

<trim suffix="" suffixOverrides=",">
				<if test="code!=null"> code = #{code},</if>
				<if test="itemname !=null"> itemname =#{itemname},</if>
				<if test="criteria !=null "> criteria =#{criteria},</if>
</trim>
  • prefix:前缀覆盖并增加其内容
  • suffix:后缀覆盖并增加其内容
  • prefixOverrides:前缀判断的条件
  • suffixOverrides:后缀判断的条件

10.if

<if>表示判断。

11.<choose >

多条件判断相当于if/elseif。

<choose>
            <when test="title != null">
                and title = #{title}
            </when>
            <when test="content != null">
                and content = #{content}
            </when>
            <otherwise>
                and owner = "owner1"
            </otherwise>
</choose>

12.resultMap

数据库字段一般都是a_b,这样不符合实体的规范,所以需要转换成aB形式。

<resultMap id="getStudentRM" type="EStudnet">
  <id property="id" column="ID"/>
  <result property="studentName" column="Name"/>
  <result property="studentAge" column="Age"/>
</resultMap>

<select id="getStudent" resultMap="getStudentRM">
  SELECT ID, Name, Age
    FROM TStudent
</select>

13.sql小技巧

时间转为String

DATE_FORMAT(scanDate,'%Y-%m-%d %H:%i') as scanDate,

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。