一、背景
在我们的学习过程中,我们经常使用到mybatis,这里主要讲讲常用的标签,这样你也可以在面试官面前有底气了,那下面我们就来讲讲这些常用的标签,再说了标签不熟悉非常影响开发效率和质量。好了废话不多说了。
二、selectKey
1.应用场景:新增数据时
2.插入数据并且返回当前数据的id
<insert id="selectUser">
<!-- selectKey 标签表示子查询中主键的提取问题
keyColumn表示查询语句返回结果的列名
keyProperty表示将属性设置到某个列中 此处为id中
order="AFTER"表示在插入语句之后执行
resultType="long"表示返回值得类型为long类型
-->
<selectKey keyColumn="myId" keyProperty="id" order="AFTER" resultType="long">
select max(id)+1 as myId from user
</selectKey>
<!-- 注意此处的id必须和selectKey中返回结果的列名一致
此处的name必须和测试类中map设置的key的名字一致,此处
的address必须和测试类中map设置的key的名字一致
-->
insert into user(id,name,address) values(#{id},#{name},#{address})
</insert>
三、isNotNull
1.应用场景:动态拼接sql条件
2.isNotNull,它的含义就是不为null,也就是<>null。
区别isNotEmpty,它的含义就是不为空,也就是<>null,并且<>''(空字符串)下面会讲。
3.例子
UPDATE
PRODUCT P
SET
UPDATE_TIME = SYSDATE
<isNotEmpty prepend="AND" property="productName">
P.PRODUCT_NAME = #productName#
</isNotEmpty>
WHERE
P.PRODUCT_ID = #productId#
四、isNotEmpty
1.应用场景:动态拼接sql条件
2.isNotEmpty,它的含义就是不为空,也就是<>null,并且<>''(空字符串)。
3.例子
UPDATE
PRODUCT P
SET
UPDATE_TIME = SYSDATE
<isNotNull prepend="AND" property="productName">
P.PRODUCT_NAME = #productName#
</isNotNull>
WHERE
P.PRODUCT_ID = #productId#
五、include
1.应用场景:多个sql的查询数据一样时,复用方便后期维护
2.相当于代码复用,定义好
<sql id="my.full.columns">
id,
gmt_create,
gmt_modified
</sql>
在不同的select语句复用
<include refid="my.full.columns"/>
六、结束
常用的理解一下!!!