mybatis insert操作 返回插入的那條資料的id
1、useGeneratedKeys=”true” 可以獲取自增長的ID 只支援具有自增長方式的那種資料庫(mysql, mssql 等 但 oracle 就不支援了 )
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="User">
insert into user(userName,password,comment)
values(#{userName},#{password},#{comment})
</insert>
User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("測試插入資料返回主鍵功能");
System.out.println("插入前主鍵為:"+user.getUserId()); //沒有 0
userDao.insertAndGetId(user);//插入操作
System.out.println("插入後主鍵為:"+user.getUserId()); //userId 的值
2.對於不支援自動生成主鍵(如Oracle),可以採用以下方式
<insert id="insert" parameterType="com.test.User">
<selectKey resultType="INTEGER" order="BEFORE" keyProperty="userId">
SELECT SEQ_USER.NEXTVAL as userId from DUAL
</selectKey>
insert into user (user_id, user_name, modified, state)
values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{modified,jdbcType=TIMESTAMP}, #{state,jdbcType=INTEGER})
</insert>