通过mybatis添加数据记录时,如何返回主键

通过mybatis添加数据记录时,如何返回主键,第1张

案例:

方法一

<insert

id="add"

parameterType="EStudent"

useGeneratedKeys="true"

keyProperty="id">

insert

into

TStudent(name,

age)

values(#{name},

#{age})

</insert>

useGeneratedKeys="true"

:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。

(适用于mysql、sqlserver数据库,oracle不能使用,使用selectkey子节点做)

keyProperty:赋值的对象的属性名称。

方法二

<insert

id="add"

parameterType="EStudent">

//

下面是SQLServer获取最近一次插入记录的主键值的方式

<selectKey

resultType="int"

keyProperty="id"

order="AFTER">

SELECT

LAST_INSERT_ID()

AS

id

</selectKey>

insert

into

TStudent(name,

age)

values(#{name},

#{age})

</insert>

报错信息:

nested exception is 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 [collection, list]

解决方法:

升级版本(mybatis-3.5.6,mybatis-spring-2.0.6)

主键是自动赋值在对象中的。

比如对象User,属性id为主键,name,age

User

user

=

new

User()

user.setName("test")

user.setAge(16)

调用mybatis的insert(user);返回值是1,该条记录的主键通过user.getId()即可获取。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7877628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存