方法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 測試