一:配置檔案如下:
<insert id="insertByList" parameterType="java.util.List" >
insert into ec_custom_question (ID, VERSION, PAPER_ID,
QUESTION_ID, STATUS, CREATED_BY,
creation_date, LAST_UPDATED_BY, LAST_UPDATED_DATE,
ENABLED_FALG, ques_order, model_id
)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id,jdbcType=INTEGER}, #{item.version,jdbcType=INTEGER}, #{item.paperId,jdbcType=INTEGER},
#{item.questionId,jdbcType=INTEGER}, #{item.status,jdbcType=CHAR}, #{item.createdBy,jdbcType=INTEGER},
#{item.creationDate,jdbcType=TIMESTAMP}, #{item.lastUpdatedBy,jdbcType=INTEGER}, #{item.lastUpdatedDate,jdbcType=TIMESTAMP},
#{item.enabledFalg,jdbcType=CHAR}, #{item.quesOrder,jdbcType=INTEGER}, #{item.modelId,jdbcType=VARCHAR}
)
</foreach>
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="ID">
SELECT LAST_INSERT_ID();
</selectKey>
</insert>
注意:
1.檢視parameterType的類型是不是java.util.List類型,如果是的話,看foreach 的collection屬性是不是list,
因為 傳遞一個 List 執行個體或者數組作為參數對象傳給 MyBatis,MyBatis 會自動将它包裝在一個 Map 中,用名稱在作為鍵。List 執行個體将會以“list” 作為鍵,而數組執行個體将會以“array”作為鍵
2.看一下foreach裡面的值有沒有傳遞進來
3.還有就是我用Mybatis的時候,用mysql的值插入自動增長值,裡面的key我在資料庫中沒有設定自動增長,然後我又用了selectkey,是以也會出現這種情況
dao層直接傳遞list過來即可