Mybatis标签SQL

<sql></sql>标签:抽取可重复使用的SQL片段,方便后面引用

<!-- 
		抽取可重复使用的SQL片段,方便后面引用
		1.SQL抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用
		2.include来引用已经抽取的SQL
		3.include还可以自定义一些property,SQL标签内部就能使用自定
			取值的正确方式:${property}
			 #{不能使用这种方式}
	 -->
	<sql id="insertColumn">
		deptno,dname,loc<!-- ,${column1} -->
	</sql>
批量保存使用:
<insert id="addDepts" databaseId="oracle"
    parameterType="com.jadeon.mybatis.bean.Dept">
    <!-- Oracle:批量保存方法1  -->
        <!-- <foreach collection="depts" item="dept" open="begin" close="end;">
               insert into dept(deptno,dname,loc)
                   values (dept_seq.nextval,#{dept.dname},#{dept.loc});
        </foreach> -->
    <!-- Oracle:批量保存方法2  -->
    insert into dept(
        <include refid="insertColumn">
            <!-- <property name="column1" value="abc"/> -->
        </include>
        
    )
        select dept_seq.nextval,dname,loc from(
            <foreach collection="depts" item="dept" separator="union" >
                       select #{dept.dname} dname ,#{dept.loc} loc from dual
            </foreach>
        )
    </insert>
 
 

猜你喜欢

转载自blog.csdn.net/love_moon821/article/details/78787488