1. 程式人生 > >mybatis 中設定mysql自增主鍵報錯Incorrect integer value: '' for column 'class_id' at row 1

mybatis 中設定mysql自增主鍵報錯Incorrect integer value: '' for column 'class_id' at row 1

按道理自增主鍵這樣配置

<insert id="insertAlbum" useGeneratedKeys="true" keyProperty="classId">
        insert into attachment_class
        VALUES (
        #{classId},'1','IMAGE',#{className},#{classSort},#{classImage},now()
        )
</insert>

只要設定的keyProperty與${}中的值相同即可

但我每次插入都報Incorrect integer value: '' for column 'class_id' at row 1

說明我傳入的${classId}為空

解決辦法:

原理我是用map傳入引數的,map中本身就有了一個名為classId的引數,而且為空,所以mybats直接就把我傳入的插入了,所以報空。

只要keyProperty改個名字就行了,不要與傳入的以上就行

<insert id="insertAlbum" useGeneratedKeys="true" keyProperty="classId1">
        insert into attachment_class
        VALUES (
        #{classId1},'1','IMAGE',#{className},#{classSort},#{classImage},now()
        )
</insert>