美文网首页
Mybatis 文档篇 3.3:Mapper XML 之 sql

Mybatis 文档篇 3.3:Mapper XML 之 sql

作者: 兆雪儿 | 来源:发表于2019-03-23 14:25 被阅读0次

1 Mapper XML Content

2 sql

This element can be used to define a reusable fragment of SQL code that can be included in other statements.
sql 可以被用来定义可重用 SQL 代码块,可以包含在其他语句中。

It can be statically (during load phase) parametrized. Different property values can vary in include instances.
它可以被静态地(在加载阶段)参数化。不同的属性值根据包含的实例而不同。

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

The SQL fragment can then be included in another statement。
这个 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>

Property value can be also used in include refid attribute or property values inside include clause。
属性值也可以用在 include 元素的 refid 属性或者 include 元素的内部语句中。

<sql id="sometable">
  ${prefix}Table
</sql>

<sql id="someinclude">
  from
    <include refid="${include_target}"/>
</sql>

<select id="select" resultType="map">
  select
    field1, field2, field3
  <include refid="someinclude">
    <property name="prefix" value="Some"/>
    <property name="include_target" value="sometable"/>
  </include>
</select>

最后

说明:MyBatis 官网提供了简体中文的翻译,但个人觉得较为生硬,甚至有些地方逻辑不通,于是自己一个个重新敲着翻译的(都不知道哪里来的自信...),有些地方同官网翻译有出入,有些倔强地保留了自己的,有的实在别扭则保留了官网的,这些都会在实践中一一更正。鉴于个人英文能力有限,文章中保留了官方文档原英文介绍(个别地方加以调整修剪),希望有缘看到这里的朋友们能够有自己的理解,不会被我可能错误或不合理的翻译带跑偏(〃'▽'〃),欢迎指正!

当前版本:mybatis-3.5.0
官网文档:MyBatis
官网翻译:MyBatis 简体中文
项目实践:MyBatis Learn

相关文章

网友评论

      本文标题:Mybatis 文档篇 3.3:Mapper XML 之 sql

      本文链接:https://www.haomeiwen.com/subject/dxwrvqtx.html