使用mybatis的時候,常常發現一個需求,我怎麼知道本身是否是增長/修改/刪除數據成功了?java
好像執行sql以後都沒有結果的。其實不是的,增刪改的sql執行以後都會有一個int類型的返回值,表示的意思是這個操做影響的行數。舉個例子,若是咱們插入一行成功的話,影響的就是一行。若是咱們修改一條數據成功的話,那麼咱們也是影響了一行。若是咱們刪除一條數據成功的話,那麼返回的就是1,表示影響了一行,若是沒有刪除任何的數據,那麼返回值就是0。因此咱們常常使用返回值是否大於0來表示是否是修改(增長/更新/刪除都算是一種修改)數據成功。sql
好比咱們插入數據的時候:mybatis
<insert id="insertStudentCacheId" parameterType="Student"> insert into student(name,age,score) values(#{name},#{age},#{score}) </insert>
接口定義:學習
// 增長新學生並返回id返回result public int insertStudentCacheId(Student student);
接口實現:spa
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方法:code
@Test public void testinsertStudentCacheId(){ Student student=new Student("helloworld",17,101); int result = dao.insertStudentCacheId(student); System.out.println("result:"+result); }
結果以下:blog
這樣的方式對於update以及刪除方法都是有效的,這是由於他們都是屬於修改方法,屬於讀寫模式,而select方式是屬於只讀方式。接口
【做者簡介】:
秦懷,公衆號【秦懷雜貨店】做者,技術之路不在一時,山高水長,縱使緩慢,馳而不息。這個世界但願一切都很快,更快,可是我但願本身能走好每一步,寫好每一篇文章,期待和大家一塊兒交流。rem
此文章僅表明本身(本菜鳥)學習積累記錄,或者學習筆記,若有侵權,請聯繫做者覈實刪除。人無完人,文章也同樣,文筆稚嫩,在下不才,勿噴,若是有錯誤之處,還望指出,感激涕零~get