1. 程式人生 > 實用技巧 >Mybatis【8】-- Mybatis返回List或者Map以及模糊查詢怎麼搞?

Mybatis【8】-- Mybatis返回List或者Map以及模糊查詢怎麼搞?

使用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方式是屬於只讀方式。

【作者簡介】


秦懷,公眾號【秦懷雜貨店】作者,技術之路不在一時,山高水長,縱使緩慢,馳而不息。這個世界希望一切都很快,更快,但是我希望自己能走好每一步,寫好每一篇文章,期待和你們一起交流。

此文章僅代表自己(本菜鳥)學習積累記錄,或者學習筆記,如有侵權,請聯絡作者核實刪除。人無完人,文章也一樣,文筆稚嫩,在下不才,勿噴,如果有錯誤之處,還望指出,感激不盡~