mybatis ——insert 对象返回自增长id 5C

添加新对想象的时候 使用selectKey的时候id反不会回来,不用selectKey就会报这个异常:
Caused by: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [user, param1]

代码如下===================

xml:

图片说明

dao:

图片说明

controller:

图片说明

User:

图片说明

0

12个回答

插入数据传的是对象么?要是对象的话直接用这个对象调用getId方法就可以得到id了

2

对象问题· 要用getId 才行

1
  1. useGeneratedKeys="true"你设置了这个,就必须使用selectKey标签,这就是你报异常的原因
  2. 你要保存后id保存到对象中,你需要在你的insert语句中把id也写进去,否则你的对象是不会有id的值的。
1

public User regist()
将dao接口返回值改为对象即可

0
sym3348000
sym3348000
2 个月之前 回复

你的这个xml里面没有写返回的配置吧 不过一般返回的数据会是返回插入数据库成功的条数,

0

入参类型已经定义是User自定义类型了,regist(@Param("user") User user) 直接写成 regist(User user) 不就好了

0

都回答的什么东西。
题主,在你的里面,insert into开始前加上下面的东西

SELECT LAST_INSERT_ID()

该方法会返回一个 String还是int类型的主键,自己试试吧。

0

都回答的什么东西。
题主,在你的里面,insert into开始前加上下面的东西

SELECT LAST_INSERT_ID()

该方法会返回一个 String还是int类型的主键,自己试试吧。

0

User里有 字段 id的 setter么? 这个err应该是set result时候的.
调用ID 用楼上两位说的 user.getId() 不要用返回值

0

传入的参数类型已经定义是User类型,regist(@Param("user") User user) 可以直接写成 regist(User user) 便可以了

0
共12条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis insert插入返回自增长id
mysql插入数据后返回自增ID的方法 方法一是使用last_insert_id  其实在Mybtias框架里使用selectkey这个节点,并设置insert返回值的类型为integer,就可以返回这个id值。 比如: 其实在Mybtias框架里使用selectkey这个节点,并设置insert返回值的类型为integer,就可以返回这个id值。 S
Mybatis——【亲测】mybatis使用注解方式插入数据后获取自增长的主键值
自己踩过的坑,查了好久,终于发现解决方法。 步骤有三: 1. 写SQL,但不要自己插入主键值 2. 配置@Options(useGeneratedKeys=true, keyProperty="对象.属性") 这个的作用是设置是否使用JDBC的getGenereatedKeys()方法获取主键并赋值到keyProperty设置的对象的属性中,说白了就是把自增长的主键值赋值给对象相应的属性
myBatis插入操作获取不到返回的自增id问题
myBatis插入操作后想返回自增 id 有多种方式 其中一种使用率较高的就是: 在<insert></insert> 标签中添加 useGeneratedKeys 和 keyProperty 属性 具体操作可以看我另一篇博客 但是就是没有返回出来,结果是因为 我在 mapper 接口中入参时使用了 @Param 注解 当使用了 @Param 注解后,想把 ins...
Mybatis 在 insert 之后想获取自增的主键 id的正确方式
今天在调试代码时,碰到了莫名其妙的问题,最后还是单步调试时,发现在使用mybatis的insert操作时,返回的值一直是“1”,跟我想象的有些出入,一直以为返回的应该是插入时的id值; Mybatis生成insert接口的用法正解: <insert id="insert" parameterType="user"> INSERT INTO `user` (`na...
MySQL在mybatis中返回插入的自增id
一、使用 useGeneratedKeys 参数 Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。 keyColumn:数据库表中的自增字段名。 keyProperty:数据库自增字段在pojo中的对应属性 ...
mybatis中插入数据自动返回自增长id的配置
mybatis中在相应的mapper.xml的insert方法中加入配置参数,就能够在插入语句的时候自动返回自增长的id,如下代码段为后端执行的代码 int count = jzAskingAnswerMapper.insertreturnid(answer); if(count>0){ return new Result(ResultCode.C200.getCode(), Mes
微软MSSQL SQLSERVER mybatis insert新增后获取自动增长ID的配置
微软MSSQL SQLSERVER mybatis insert新增后获取自动增长ID的配置
mybatis批量插入返回自增长id集合
mybatis批量插入返回自增长id集合 都知道使用useGeneratedKeys可以在插入数据的返回自增长的id,其实在批量插入的时候也可以使用useGeneratedKeys返回批量插入的自增长id集合 UserScoreDo.java: public class UserScoreDo implements Serializable { private Intege...
mybatis+mysql insert时返回自增主键
使用mybatis执行insert操作时,需要返回自增主键 网上清一色的答案, useGeneratedKeys设置为true keyProperty设置为实体类主键字段,如下: [code="xml"] insert into entity(...) values(...) [/code] 我试了好多次都不行,最后看了下面这篇文档: [url]http://w...
Mybatis id自增,插入数据后返回id
insert into tb_manager values(null,#{userName},#{password}) 返回值为插入数据后的id 参考博客
mybatis获得自增长id
<selectKey resultType="Integer" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() AS id </selectKey>keyProperty是Java对象的属性名,而不是表格的字段名。把这个代码copy到xxx.xml就可以用了,如:dao层的ma...
Mybatis在insert时返回自增id总是为1
项目过程中,spring-boot整合mybatis在插入用户时,需要返回用户id方便存入session,但是mybatis的insert标签里没有resultType方法,于是使用: <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.lc.sharedplatform.port...
mybatis批量插入返回自动增长的id
mybatis批量插入返回自动增长的id需要3.3.1版本以上     org.mybatis     mybatis     3.3.1 mapper文件中的写法: 必须这种方式,使用如下方式,无效             SELECT LAST_INSERT_ID() AS fieldId
使用通用mapper(tk.mybatis)的insert方法时获取不到自增的主键问题
在写项目的时候使用的dubbo作为内部接口调用的简单分布式系统时,使用通用mapper进行数据插入的时候需要拿到插入后的主键,但是一直获取不到,在网上找了很多方法都试了,但是最后还是获取不到,后面突然觉得会不会是因为分布式的问题返回不到消费者这边来,然后在消费者那里重写了baseService的insert方法,果然获取到了 然后根据业务需求,返回了主键,如果执行影响行数不足1,就返回i ...
Mybatis下insert语句后获取自增id
目前项目是一个公司平台的项目重构,项目原来的设计很多不必要。但是也会用到。之前遇到了这种insert后需要知道自增id。然后根据自增id还要去关联表插入一条数据。我是很不支持这样的。但是原有设计如此。而且是第二次遇到,第一次没有记,这次记下来,目前我只负责订单系统。只是涉及到了其他部分。也无力去帮忙改造。此方法为Mybatis下使用insert后获得自增id的方法,网上也看了许多方法,但是这个方法应
mybatis insert语句中自增长
1、insert使用db自动生成主键 insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio}) 2、db不支持自动生成时 select CAST(RANDOM()*1000000 as INTEGER) a from S
Mybatis插入返回自增主键报错
执行mybatis插入,配置返回主键如下: @Insert("insert urun_plan.spider_record (id,taskid,starttime,endtime,receiver,spiderstatus,remarks,timestamp) value(#{record.id},#{record.taskid},#{record.starttime},#{record.e...
MyBatis 批量新增返回自增id
批量插入数据时,需要返回自增id,xml格式如下: insert id="save" parameterType="list" useGeneratedKeys="true" keyProperty="id"> INSERT INTO t (userName,telephone) VALUES foreach collection="list" item
mybatis的insert插入后获取自增id详解(从controller到mapper)
需求说明:当执行插入操作的时候,其中数据包含两个模块,分别存放在两种数据库表中,拿表A,表B来说。 表A为基本信息表,其中插入时候有自增id,也就是每新增一条数据后下一个id都会自动加1。 表B为详情表,其中有个字段为A_id与A表中的id是一样的,也就是他们的关联字段。 那么问题就来了:如果你在新增数据的时候,你发现基本信息和详情的数据都是在一个页面中,也是同时传递到后端接口中,那么我们势...
SSM配置Mybatis实现自动获取插入数据的自增id至目标对象中
Mybatis配置: SELECT LAST_INSERT_ID() insert into contents (id, price, title, pic, summary, detail )
如何获取MyBatis通过Map插入数据后如何获取返回的自增ID值
<insert id="addXX" parameterType="java.util.Map" useGeneratedKeys="true" keyProperty="XX_Id" > </insert>防止忘记,记录一下,parameterType=返回值的类型为Map(也就是我传入值的类型),然后通过map.get("Id")获取插入的I
mybatis: 返回主键ID(自增和非自增)
mapper映射文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.
mybatis自增主键返回 insert插入语句 回显主键自增的id 将id插入到实体类对象中
parameterType为插入对象的对应实体类,useGeneratedKeys="true"表示返回自增长主键,keyProperty为返回将返回的主键放到对象的制定属性中 <insert id="insertPurRequestQuotation" parameterType="org.ibase4j.model.purchase.PurRequestQuotation" use...
Mybatis获取插入记录的自增长ID
1.在Mybatis Mapper文件中添加属性“useGeneratedKeys”和“keyProperty”,其中keyProperty是Java对象的属性名,不是表格的字段名!
mybatis 插入操作,insert_获取非自增主键的值
1:MySQL 2:oracle
Mybatis通用mapper获得insert后的数据实体的自增ID
一、pom(基于Spring-Boot)   <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mappe...
Mybatis generator 自动生成代码时 ,insert返回主键值
mvn mybatis-generator:generate 如果要让generator自动添加该功能,可以如下配置:                        enableCountByExample="false" enableUpdateByExample="false"                enableDeleteByExample="false
springboot整合mybatis(连接mysql,自动生成代码,insert返回自增主键值)
一、快速搭建一个简单的springboot框架 参考:https://blog.csdn.net/qq_35783095/article/details/79161200 二、项目的pom文件如下: <?xml version="1.0" encoding="UTF-8"?&a
mybatis使用@Insert @SelectKey 执行插入语句时获得主键自增长值
  @Insert(" insert into table(c1,c2) " + " values (#{c1},#{c2}) ") @SelectKey(resultType = long.class,keyColumn = "id",before = false,statement = "SELECT LAST_INSERT_ID() AS id",keyProperty ...
mybatis获取自增id
获取数据库自增id方式一:通过配置方式<insert id="insert" parameterType="pojo" useGeneratedKeys="true" keyProperty="id" >  //配置这里的属性    insert into standard_library (id, parent_id, origin_doc_id,       parent_ids)...
Mybatis Oracle数据库批量插入数据和返回新增数据的主键ID
近期在项目中用到了这些批量操作,记录一下自己对这些代码的理解。 第一种:Mapper层代码(包括Mapper映射文件和映射接口) 1.1 Mapper映射文件-------------------------------------------------------- <mapper namespace="com.mxx.demo.mapper.DmDsVestRlatMappe...
【MyBatis】关于MyBatis插入自动增长id的Bean到数据库后返回的id为null的解决办法
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 解决办法其实很简单,只需要为你的**.xml中的insert增加两个属性就可以了。 例如,我的SponsorsMapper.xml中原来的代码如下:<insert id="insertSelective" parameterType="com.uifuture.footer.enti
MyBatis insert实体返回主键
一、insert  属性详解    parameterType ,入参的全限定类名或类型别名    keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置    keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中
mybatis-3.3.1.jar mybatis-3.3.1 jar包
支持批量插入返回自增长id。亲测可用。 mybatis必须是3.3以上。 java代码如下配置 <insert id="XXXXX" useGeneratedKeys="true" keyProperty="id"> </insert> 调用时 XXX.insert("XXXXX", list); 执行后,id在list中的对象 。可取值
MyBatis insert后返回自增字段的值
转载自:https://www.cnblogs.com/waterystone/p/5654300.html 作者:水岩 如下情况适用支持自增的DB,如MySQL。其他情况参见:MyBatis魔法堂:Insert操作详解(返回主键、批量插入) 1.model public class UserInfo { private int id;//主键自增ID private St...
MyBatis中在插入数据后,对象立刻获取Id的方法
只列举最主要的部分 方法一(获取自增主键,拥有自增主键的数据库例如:MySQL) 在insert标签中,加入keyProperty和useGeneratedKeys两个属性: &amp;lt;!-- MySQL中获取主键并插入1 --&amp;gt; &amp;lt;insert id=&quot;insertUser&quot; parameterType=&quot;user&quot; keyProperty=&quot;userId&quot;...
DB2 插入数据并返回自增长主键
建表语句: create table wqx_XXX ( id integer not null primary key generated always as identity (start with 1 , increment 1), name varchar(200) not null ) insert into wqx_XXX(name) values(#name#)
Mybatis自增主键返回与非自增主键返回
自增主键返回<insert id="zizenginsertToStudent" parameterType="com.nsu.mybatis.practice.Student"><!-- 将插入数据的主键返回,返回到student2对象中 SELECT LAST_INSERT_ID():得到刚insert进去记录的主键值,只适用于自增主键 keyProperty:将查询到的主键值设置到
Mybatis SqlServer 获取返回自增列配置
&amp;lt;insert id=&quot;saveReportTemplate&quot; parameterType=&quot;map&quot;&amp;gt; &amp;lt;selectKey resultType=&quot;java.lang.Integer&quot; keyProperty=&quot;template_id&quot; order=&quot;AFTER&quot;&amp;gt; SELECT IDENT_CURRENT('insert表名
第四天学习Mybatis总结——返回自增长的主键|非自增长的主键
1.返回自增长的主键 第一种方法: Student.java包括id,stuNum,stuName三个属性 数据库中student表包含三个属性包括id stu_num,stu_name三列,id为主键,自增长。 StudentMapper.xml配置文件 &amp;lt;!-- 当实体属性和表字段名不相同的时候, 必须书写以下代码--&amp;gt; &amp;lt;resultMap type...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java班级与对象 人工智能培训对象