1. 程式人生 > >(七)Mybatis如何知道增刪改是否成功執行

(七)Mybatis如何知道增刪改是否成功執行

注:程式碼已託管在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方式是屬於只讀方式。