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

使用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

相關文章
相關標籤/搜索