MyBatis_sql_抽取可重用的sql片段

<sql>是一个与<insert>,<select>等增删改查同级别的标签,作用是抽取可重用的sql片段。方便后面引用
这里写图片描述
可以将经常要查询的列名,或者插入用的列名抽取出来方便引用,像这样子抽取出来:

<sql id="insertColumn">
    employee_id,last_name,email
</sql>

原来字段的地方就可以用<include>标签来引用已经抽取的sql

insert into employees(
    <!-- 引用外部定义的sql -->
    <include refid="insertColumn">
    </include>
)

<sql>标签中也可以进行动态判读传进来的参数

<sql id="insertColumn">
    <if test="_databaseId=='oracle'">
        employee_id,last_name,email
    </if>
    <if test="_databaseId=='mysql'">
        last_name,email,gender,d_id
    </if>
</sql>

<include>中还可以使用<property> 标签往sql中加入字段

insert into employees(
    <!-- 引用外部定义的sql -->
    <include refid="insertColumn">
        <property name="testColomn" value="abc"/>
    </include>
)

这样sql标签内部就能使用自定义的属性了
记住取值是用${}

 <sql id="insertColumn">
    <if test="_databaseId=='oracle'">
        employee_id,last_name,email,${testColomn}
    </if>
</sql>

猜你喜欢

转载自blog.csdn.net/qq_36901488/article/details/80658376