方法一
<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()即可获取。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)