(七)Mybatis如何知道增刪改是否成功執行
阿新 • • 發佈:2018-11-28
注:程式碼已託管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning,專案是mybatis-05-CURD,需要自取,需要配置maven環境以及mysql環境,覺得有用可以點個小星星,Thanks~
使用mybatis的時候,經常發現一個需求,我怎麼知道自己是不是增加/修改/刪除資料成功了?好像執行sql之後都沒有結果的。其實不是的,增刪改的sql執行之後都會有一個int型別的返回值,表示的意思是這個操作影響的行數。舉個例子,如果我們插入一行成功的話,影響的就是一行。如果我們修改一條資料成功的話,那麼我們也是影響了一行。如果我們刪除一條資料成功的話,那麼返回的就是1,表示影響了一行,如果沒有刪除任何的資料,那麼返回值就是0。所以我們經常使用返回值是否大於0來表示是不是修改(增加/更新/刪除都算是一種修改)資料成功。
比如我們插入資料的時候:
<insert id="insertStudentCacheId" parameterType="Student">
insert into student(name,age,score) values(#{name},#{age},#{score})
</insert>
介面定義:
// 增加新學生並返回id返回result
public int insertStudentCacheId(Student student);
介面實現:
public int insertStudentCacheId(Student student) {
int result;
try {
sqlSession = MyBatisUtils.getSqlSession();
result =sqlSession.insert("insertStudentCacheId", student);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
return result;
}
Test方法:
@Test
public void testinsertStudentCacheId(){
Student student=new Student("helloworld",17,101);
int result = dao.insertStudentCacheId(student);
System.out.println("result:"+result);
}
結果如下:
這樣的方式對於update以及刪除方法都是有效的,這是因為他們都是屬於修改方法,屬於讀寫模式,而select方式是屬於只讀方式。