2014-05-02 52 views
0

我使用彈簧的MyBatis爲刪除查詢我Batis刪除查詢返回類型並不一致

這是我的電話怎麼看起來像

if(mapper.deleteSomething(id)) 
{ 

..... 
} 

在我的映射我有

<delete id = "deleteSomething"> 
delete from table where id = #{id} 
</delete> 

但是我注意到,在成功刪除的情況下,返回類型並非總是如此。有時候它會返回true,有時會返回false,但記錄總是會在db中被刪除。

我在做什麼錯?

+0

刪除應該返回整數和整數值將被刪除的行數。因此,將您的映射器接口返回類型更改爲整數 –

+0

我將返回類型更改爲int,但仍獲得相同的行爲 – Yogi

回答

0

以下是您需要進行的更改。

  1. 更改映射器接口方法

    public interface yourinterface{ 
        public int deleteSomething(<data type> id) 
    } 
    

    我在你的映射文件中看到有輸入提到的任何參數類型,它能夠更好地補充

  2. 改變,如果條件

    int count =mapper.deleteSomething(id); 
    if(count>0){ 
        System.out.println("Deleted "+ count +"records"); 
    }else{ 
        System.out.println("Delete failed"); 
    } 
    
+0

嗨,我的工作完全一樣。但是,在連續執行期間,有時計數會變爲0,但它會從數據庫中刪除。 – Yogi

+0

你使用任何交易?........什麼是日誌說。你使用哪個數據庫? –

+0

嗨,是的,我正在使用交易,我正在使用MySQL。 – Yogi