Mybatis【8】-- Mybatis返回List或者Map以及模糊查詢怎麼搞?
阿新 • • 發佈:2020-12-26
使用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方式是屬於只讀方式。
【作者簡介】
秦懷,公眾號【秦懷雜貨店】作者,技術之路不在一時,山高水長,縱使緩慢,馳而不息。這個世界希望一切都很快,更快,但是我希望自己能走好每一步,寫好每一篇文章,期待和你們一起交流。
此文章僅代表自己(本菜鳥)學習積累記錄,或者學習筆記,如有侵權,請聯絡作者核實刪除。人無完人,文章也一樣,文筆稚嫩,在下不才,勿噴,如果有錯誤之處,還望指出,感激不盡~