方法1:根据useGeneratedKeys获取返回值,部分数据库不支持java
修改mybatis xmlmysql
<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子节点作)sql
keyProperty:赋值的对象的属性名称。数据库
添加完成后,直接根据对象属性取值。mybatis
user u=new user(); u.setName("测试"); System.out.println(u.getId()+"取值前"); int num = userService.insert(u); System.out.println(u.getId()+"取值后");
方法2:根据selectkey获取oracle
<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>
后台代码不变。sqlserver
原文:https://blog.csdn.net/shuaipu813/article/details/52755808 测试