mybatis+mysql insert添加数据后返回数据主键id---(转)
1.根据useGeneratedKeys获取返回值,部分数据库不支持
修改mybatis xml
<insert id=
"insertUser"
useGeneratedKeys=
"true"
keyProperty=
"id"
parameterType=
"com.entity.user"
>
insert into test (name) values (#{name})
</insert>
useGeneratedKeys="true" :设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。(适用于mysql、sqlserver数据库,oracle不能使用,使用selectkey子节点做)
keyProperty:赋值的对象的属性名称。
添加完成后,直接根据对象属性取值。
user u=new user(); u.setName("测试"); System.out.println(u.getId()+"取值前"); int num = this.dao.getSqlSession().insert("insertUser",u); System.out.println(u.getId()+"取值后");
2.根据selectkey获取
<insert id=
"insertUser"
parameterType=
"com.entity.user"
>
insert into test (name) values (#{name})
<selectKey keyProperty=
"id"
resultType=
"java.lang.Integer"
>
select LAST_INSERT_ID() as id
</selectKey>
</insert>
后台代码不变。
各个数据库获取方式不一样,本例根据mysql为例。其他请各自根据需要查询。