1. 程式人生 > >Oracle中同時新增多條資料

Oracle中同時新增多條資料

假設現在有一個招聘會公司表,一個招聘崗位表。。其中招聘崗位的co_id關聯招聘公司的id。一個招聘會公司可能會發布很多個招聘崗位。name在新增招聘崗位的時候

    <insert id="addFairPosition" parameterType="java.util.List">
        INSERT INTO T_JOB_FAIR_POSITION (id, co_id, name, hire_num, salary, address, summary, require)
        SELECT T_JOB_FAIR_POSITION_ID_SEQ.nextval id, A.* FROM (
        <foreach collection="list" index="index" item="item" separator="UNION ALL">
            SELECT #{item.coId} co_id, #{item.name} name, #{item.hireNum} hire_num, #{item.salary} salary,
            #{item.address} address, #{item.summary} summary, #{item.require} require FROM dual
        </foreach>
        )A
    </insert>

其中T_JOB_FAIR_POSITION_ID_SEQ.nextval 是獲得招聘崗位id的下一個值,dual為Oracle中虛擬表,是不存在的。。foreach是在迴圈新增招聘崗位。

<!--新增招聘會公司與職位資訊-->
	//T_JOB_FAIR_CO_ID_SEQ.nextval獲得T_JOB_FAIR表中co_id 的下一個值,dual為虛擬表,是不存在的
    <select id="getFairCoSEQ" resultType="java.lang.String">
        SELECT T_JOB_FAIR_CO_ID_SEQ.nextval FROM dual
    </select>
	//增加招聘會的sql語句
    <insert id="addFairCo" parameterType="com.tecsun.sisp.iface.server.vo.FairCoBean">
        INSERT INTO T_JOB_FAIR_CO (id, fair_id, name, contact, tel, mobile, address, summary)
        VALUES (#{id}, #{fairId}, #{name}, #{contact}, #{tel}, #{mobile}, #{address}, #{summary})
    </insert>

例如,增加企業賬戶也是可能回同時增加好幾個
<insert id="uploadCoAccount" parameterType="com.tecsun.sisp.iface.server.vo.CoBean">
        INSERT INTO T_CO_USER(ID, LOG_NAME, PASSWORD, NAME, CONTACT,
        TEL, MOBILE, EMAIL, ADDRESS, FAX,
        SUMMARY, STATUS, CREATE_TIME, CHECK_TIME, CHECK_MSG, INDUSTRY_CATEGORY)
        SELECT T_CO_USER_ID_SEQ.nextval id, A.* FROM (
        <foreach collection="list" index="index" item="item" separator="UNION ALL">
            SELECT #{item.logName} LOG_NAME, #{item.password} PASSWORD, #{item.name} NAME, #{item.contact} CONTACT,
            #{item.tel} TEL, #{item.mobile} MOBILE, #{item.email} EMAIL, #{item.address} ADDRESS, #{item.fax} FAX,
            #{item.summary} SUMMARY, #{item.status} STATUS, #{item.createTime} CREATE_TIME,
            #{item.checkTime} CHECK_TIME, #{item.checkMsg} CHECK_MSG, #{item.industryCategory} INDUSTRY_CATEGORY
            FROM dual
        </foreach>
        )A
    </insert>