我有Shops表,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执行select来确定某个商店是否已经存在,然后执行update
(如上所述)或create
(如果不存在)。
还有更好的方法吗?
答案 0 :(得分:2)
您可以使用以下方法
createOrUpdate(parameter)