1.根据useGeneratedKeys获取返回值,部分数据库不支持
修改mybatis xml
1
2
3
|
<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获取
1
2
3
4
5
6
|
<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为例。其他请各自根据需要查询。