làm cách nào tôi có thể lấy khóa được tạo bằng cách chèn bằng MyBatis? Tôi đã đọc nhiều trang về câu hỏi này nhưng tôi vẫn bị chặn, bất kỳ ai cũng có thể giúp tôi không? Đây là mã của tôi:MyBatis, làm thế nào để có được chìa khóa tự động tạo ra của một chèn? [MySql]
Bảng:
ID_ERROR long primary key
DATE timestamp
TYPE varchar
MESSAGE varchar
SOURCE varchar
Các dao:
Long returnedId = 0L;
MyMapper myMapper = this.sqlSession.getMapper(MyMapper.class);
myMapper.insertRecord(returnedId, Utils.now(), t.getClass().getName(), t.getMessage(), c.getName());
return returnedId;
Các 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);
Các 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>
Điều gì là sai? Làm cách nào tôi có thể lấy khóa được tạo của phần chèn này? Cảm ơn!
Một không bao giờ nên sử dụng error.id cho bất cứ điều gì nhưng ID lỗi. Hacks như vậy làm cho mã bẩn và không thể đọc được – Bostone