Mybatis中的标签

微信扫一扫,分享到朋友圈

Mybatis中的标签

官方文档: mybatis官网

mapper中的几个顶级元素:

  • cache
  • cache-ref
  • resultMap
  • parameterMap
  • sql
  • insert
  • delete
  • update
  • select

SELECT

<select
id="selectPerson"
parameterType="int"
parameterMap="deprecated"
resultType="hashmap"
resultMap="personResultMap"
flushCache="false"
useCache="true"
timeout="10"
fetchSize="256"
statementType="PREPARED"
resultSetType="FORWARD_ONLY">

注:resultType与resultMap中只能二选一。

resultType可以是任意包装类型/实体类;而resultMap更加强大。

可以先看一篇文章先了解一下:[ResultType与ResultMap区别]

( https://blog.csdn.net/weixin_…

flushCache:调用sql后,清空本地缓存和二级缓存,默认值为false。

useCache:调用后二级缓存存下来,对select默认为true。

statementType: PREPARED|STATEMENT|CALLABLE,分别对应相应的statement类型。

INSERT/DELETE/UPDATE

<insert
id="insertAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
keyColumn=""
useGeneratedKeys=""
keyProperty=""
timeout="20">
<update
id="updateAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
timeout="20">
<delete
id="deleteAuthor"
parameterType="domain.blog.Author"
flushCache="true"
statementType="PREPARED"
timeout="20">

次级元素(顶级标签下的标签)

  • foreach
<foreach item="item" collection="list" separator=",">
(#{item.username}, #{item.password}, #{item.email}, #{item.bio})
</foreach>
  • selectKey
<selectKey keyProperty="id" resultType="int" order="BEFORE">
select CAST(RANDOM()*1000000 as INTEGER) a from SYSIBM.SYSDUMMY1
</selectKey>
  • sql 定义可重用的代码片段

定义

<sql id="userColumns"> ${alias}.id,${alias}.username,${alias}.password </sql>

使用

<select id="selectUsers" resultType="map">
select
<include refid="userColumns"><property name="alias" value="t1"/></include>,
<include refid="userColumns"><property name="alias" value="t2"/></include>
from some_table t1
cross join some_table t2
</select>
  • 动态sql(if,choose/when/otherwise,trim,where,set,bind)

微信扫一扫,分享到朋友圈

Mybatis中的标签

可笑,你竟然不知道 Java 如何生成 UUID

上一篇

B站获得LOL三年独播版权

下一篇

你也可能喜欢

Mybatis中的标签

长按储存图像,分享给朋友