前言:
select last_insert_id语句的作用是返回自增长的最后插入的数据的ID。
实现方法:
1、在Mapper上加入@SelectKey:
@Insert("INSERT INTO application ( apId, uId, applicantSN, apApplicant, apApplicantPhone, apBeginTime, apOverTime, apContent, apNote, apSubmitTime, apState, apAcademy, apResult ) VALUES (#{apId}, #{uId}, #{applicantSN}, #{apApplicant}, #{apApplicantPhone}, #{apBeginTime}, #{apOverTime}, #{apContent}, #{apNote}, #{apSubmitTime}, #{apState}, #{apAcademy}, #{apResult})")
@SelectKey(keyProperty = "apId",keyColumn = "apId",resultType = int.class,before = false,statement = "select last_insert_id()")
int saveAndGetLastId(Application application);
然后此时获得返回值里的id就是自增长的id(没加之前是0)
这时候,一般直接getApId就能拿到值了
但是,因为我的返回值是json格式,直接用getApId返回的是null,所以这时候需要先对json数据进行处理。
思路一:先获得返回的result,然后将result转成实体类,然后再getApId
Result result = DatabaseUtil.insert(application,"application","insert");
Toast.makeText(BorrowApplicationActivity.this,"提交成功",Toast.LENGTH_SHORT).show();
//查询刚才存进去的application的Id,存到applicationlist里,方便后期级联删除
Application application1 = DatabaseUtil.getEntity(result,Application.class);
思路二:直接将json格式的数据解析,然后获得apId。网上有很多解析的教程,就不写了。