我怎樣才能使用MyBatis獲得插入的生成密鑰? 我看了很多關於這個問題的網頁,但我仍然被封鎖,有人能幫助我嗎? 這是我的代碼:MyBatis,如何獲取插入的自動生成密鑰? [MySql]
表:
ID_ERROR long primary key
DATE timestamp
TYPE varchar
MESSAGE varchar
SOURCE varchar
的道:
Long returnedId = 0L;
MyMapper myMapper = this.sqlSession.getMapper(MyMapper.class);
myMapper.insertRecord(returnedId, Utils.now(), t.getClass().getName(), t.getMessage(), c.getName());
return returnedId;
的mapper.java:
public void insertRecord(@Param("returnedId") Long returnedId, @Param("timestamp")Timestamp timestamp,@Param("type") String type,@Param("message") String message,@Param("source") String source);
的mapper.xml
<insert id="insertRecord" parameterType="map" useGeneratedKeys="true" keyProperty="ID_ERROR">
INSERT INTO errors (
DATE,
TYPE,
MESSAGE,
SOURCE
)
VALUES (
#{timestamp},
#{type},
#{message},
#{source}
)
<selectKey resultType="long" order="AFTER" keyProperty="returnedId">
SELECT LAST_INSERT_ID() as returnedId
</selectKey>
</insert>
有什麼問題?我怎樣才能得到這個插入的生成密鑰? 謝謝!
一個不應該使用error.id任何東西,但錯誤ID。像這樣的黑客使代碼變得骯髒和難以辨認 – Bostone