2016-01-05 49 views
0

我已經商店表,用於ormlite相應字段聲明如下:的Android/Ormlite - 更新現有的或插入如果不存在

@DatabaseField(canBeNull = false, columnName = C_SHOP_ID, index=true, id=true) 
    private String shopId; 

    @DatabaseField(dataType = DataType.BYTE_ARRAY, canBeNull = false, columnName = C_SHOP_ICON) 
    private byte[] shopIcon; 

    @DatabaseField(canBeNull = false, columnName = C_SHOP_DETAILS) 
    private String shopDetails; 

    @DatabaseField(canBeNull = false, columnName = C_SHOP_NAME) 
    private String shopName; 

    @DatabaseField(canBeNull = false, columnName = C_SHOP_SHORT_DESCRIPTION) 
    private String shopShorDescription; 

接着,這是更新現有的行方法(通過主鍵識別對吧?):

public void updateShop(Shops item) 
    { 
     try 
     { 
      getHelper().getShopItemsDao().update(item); 
     } 
     catch (SQLException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

現在我需要將我的updateShop方法更改爲updateOrInsertShop。因此,如果指定的商店存在(由shopID確定),它應該被更新。否則,它應該作爲新行插入。 顯然,我可以通過shopID進行選擇以確定某個商店是否已經存在,然後執行update(如上)或create(如果不存在)。

有沒有更好的方法?

+1

'getHelper()方法。getShopItemsDao()。createOrUpdate(項目)' –

回答

2

你可以用下面的方法

createOrUpdate(parameter) 
相關問題