需求:使用MyBatis往MySQL數據庫中插入一條記錄后,需要返回該條記錄的自增主鍵值。
方法:在mapper中指定keyPRoperty屬性,示例如下:
1 <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.koala.blog.model.Test" >2 insert into test (id, name)3 values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR})4 </insert>
如上所示,我們在insert中指定了keyProperty="id",其中id代表插入的Test對象的主鍵屬性。
還要明確useGeneratedKeys="true"否則也不會起作用
model,dao皆由mybatis generator自動生成
使用單元測試測試的方法:
1 @Test2 public void testInsert() {3 com.koala.blog.model.Test test = new com.koala.blog.model.Test();4 test.setName("haha");5 int result = testService.insert(test);// result是指插入幾條記錄6 LOGGER.info(test.getId());// test.getId()是獲取新增記錄的主鍵7 }
該方法適用于主鍵為int型的自增主鍵
非自增主鍵需要設置主鍵后才能正確插入數據,所以配不配置 useGeneratedKeys="true" keyProperty="id"
都可以正確獲取 test.getId()
新聞熱點
疑難解答