MyBatis,如何获取插入的自动生成密钥? [MySQL的] [英] MyBatis, how to get the auto generated key of an insert? [MySql]

查看:191
本文介绍了MyBatis,如何获取插入的自动生成密钥? [MySQL的]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用MyBatis获取插入的生成密钥?
我读了很多关于这个问题的网页,但我还是被封锁了,有人能帮帮我吗?
这是我的代码:

how can I get the generated key of an insert with MyBatis? I read many pages about this question but I'm still blocked, could anyone help me, please? This is my code:

表格:

ID_ERROR long primary key
DATE timestamp
TYPE varchar
MESSAGE varchar
SOURCE varchar

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;

mapper.java:

The 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

The 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>

有什么问题?如何获取此插入的生成密钥?
谢谢!

What is wrong? How can I get the generated key of this insert? Thanks!

推荐答案

如果你想获得生成的主键,你应该通过<$ c传递参数$ c>地图或 POJO对象

If you want to get the generated primary key, you should pass the arguments by Map or POJO Object

public void insertRecord(Map<String, Object> map);

调用映射方法时,将值放到map中。

When call the mapping method, put values to map.

Map<String, Object> map = new HashMap<String, Object>();
map.put("returnedId", 0);
map.put("message", message);
// other paramters
mapper.insertRecord(map);
return map.get("returnedId");

这篇关于MyBatis,如何获取插入的自动生成密钥? [MySQL的]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆