我是mybatis的新手。我正在尝试获取最后插入的记录的ID。我的数据库是mysql而我的映射器xml是
<insert id="insertSelective" parameterType="com.mycom.myproject.db.mybatis.model.FileAttachment" >
<selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
SELECT LAST_INSERT_ID() as id
</selectKey>
insert into fileAttachment
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="name != null" >
name,
</if>
<if test="attachmentFileSize != null" >
size,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="attachmentFileSize != null" >
#{attachmentFileSize,jdbcType=INTEGER},
</if>
</trim>
</insert>
我认为在这里写的语句“ SELECT LAST_INSERT_ID()as id”应该返回最后插入的记录的id,但是插入记录后我总是得到1。
我的mapper.java类有方法
int insertSelective(FileAttachment record);
在我的课堂上,我正在使用
int id = fileAttachmentMapper.insertSelective(fileAttachment);
插入新记录时,我的Id值始终为1。我的ID字段会自动增加,并且记录会正确插入。
id被注入到对象中:
int num_of_record_inserted = fileAttachmentMapper.insertSelective(fileAttachment);
int id = fileAttachment.getId();
要做的selectKey
是在要插入的对象中设置id,在这种情况下,fileAttachment
在其属性中设置ID,并插入id
AFTER记录。
问题内容: 我使用以下查询将多个记录插入到表中: 由于查询要插入多个记录,因此无法使用 SCOPE_IDENTITY 来检索PK。有什么方法可以获取最近插入记录的ID? 问题答案: SCOPE_IDENTITY()将正确为您提供LAST ID。您需要将其与@@ Rowcount结合使用,以提供ID范围。 正如其他Richard指出的那样 ,这仅在您将增量设置为1时有效 例如: 执行此操作的另一种方
问题内容: 我有一个插入查询(活动记录样式),用于将表单字段插入到MySQL表中。我想获取插入操作的最后一个自动递增的ID作为查询的返回值,但是我有一些问题。 控制器内部: 而内部模型: 作为模型中add_post的返回,我一无所获 问题答案: 尝试这个 如果有多次插入,您可以使用
本文向大家介绍MyBatis获取插入记录的自增长字段值(ID),包括了MyBatis获取插入记录的自增长字段值(ID)的使用技巧和注意事项,需要的朋友参考一下 第一步: 在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名! 第二步: Mybatis执行完插入语句后,自动将自增
我有个问题。我似乎无法从MySQL数据库/表中获取最后插入的记录/id。我想从“tag_id”列返回最后一个插入的id,但我没有得到任何返回。顺便说一下,我正在使用DBO。我尝试了“mysql\u insert\u id”和“lastInsertId”,但没有成功。 我的数据库表看起来像这样: 表名:gitags_标签 我的PHP如下所示(在本例中,我希望返回'440'): 非常感谢您的帮助。
问题内容: 我正在向表中插入一些数据,并且需要检索插入行的。表示是通过序列生成的,然后通过触发器插入到表中。 现在,我知道在使用时有几种方法来获取插入行的ID ,但是由于我正在执行命令,因此似乎无法弄清楚在插入数据后如何获取ID。任何建议将不胜感激。 问题答案: 这样的事情应该工作
问题内容: 我有一个查询,我想插入最后一个ID。字段ID是主键,并且是自动递增的。 我知道我必须使用以下语句: 该语句适用于如下查询: 但是,如果我想使用以下语句获取ID: 我收到此错误: 我究竟做错了什么? 问题答案: 那是因为那是SQL函数,而不是PHP。您可以使用。 喜欢: 如果要使用SQL而不是PDO API进行操作,则可以像普通的select查询一样进行操作: