mapper.xml
<!--批量插入-->
<insert id="insert" parameterType="java.util.List">
INSERT INTO exam(empId,empName,insuredType,beginDate,status,maxDate,insuredOrg)
<foreach item="item" collection="list" separator="UNION ALL" >
select
#{item.empId,jdbcType=VARCHAR},
#{item.empName,jdbcType=VARCHAR},
#{item.insuredType,jdbcType=VARCHAR},
#{item.beginDate,jdbcType=VARCHAR},
#{item.status,jdbcType=VARCHAR},
#{item.maxDate,jdbcType=VARCHAR},
#{item.insuredOrg,jdbcType=VARCHAR}
from dual
</foreach>
</insert>
<!--查询数据-->
<!--tochar()把date数据转为字符串-->
<select id="queryEmpDetailsInfo" parameterType="string" resultType="com.yinhai.ta404back.entity.EmpInsureInfo">
select *
from(
select a.aab001 as empId,
b.aae044 as empName,
c.aae140 as insuredType,
to_char(c.aab050,'yyyyMMdd') as beginDate,
c.aab051 as status,
c.yae097 as maxDate,
c.yab139 as insuredOrg
from ab01 a,ae10 b,ab02 c
where a.aab001=b.aaz001 and a.aab001=c.aab001
and a.aab001= #{param, jdbcType = VARCHAR})
where <![CDATA[rownum<=1000]]>
</select>
注意:
1. oracle与mysql的mybatis语法不太一样,要靠虚拟表来操作批量插入!
2. collection 有三种参数:list,array,map。
3. oracle没有limit,要靠rownum来限制数据条数。