1:动态表 数据获取用${tableName}
2:批量插入 运用foreach
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO ST_BUSATTROUT
(
NAME,
VBUS,
F,
ANG,
FAULT_NO,
BUS_NO,
BUSREF
)
<foreach collection="list" item="item" index="index" separator="union all">
select
#{item.name,jdbcType=VARCHAR},
#{item.vbus,jdbcType=INTEGER},
#{item.f,jdbcType=INTEGER},
#{item.ang,jdbcType=INTEGER},
#{item.faultNo,jdbcType=INTEGER},
#{item.caseNode.id,jdbcType=INTEGER},
#{item.busRef,jdbcType=VARCHAR}
FROM DUAL
</foreach>
</insert>
collection="list" 也可以是array 如果参数类型是map collection="list" 指定map的key 就可以了
3:mapper sql 公用,将公用sql 放在父级包中,子类包中的mapper就可以使用
4:批量删除 使用in的方式
<delete id="deleteByIds" parameterType="map">
DELETE FROM ST_BUSATTROUT T WHERE T.FAULT_NO = #{faultNo}
AND
T.BUS_NO IN
<foreach collection="iDs" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
5:关联查询,给对象属性赋值
例如对象A a 中有个B b 属性
有个a表 和b表
select a.name ,b.name as "b.name" from a a left join b b on a.bid = b.id 就可以直接在sql中给对象属性赋值