Android/Ormlite - 更新现有的或如果不存在则插入

Android/Ormlite - update existing or insert if not exists

我有店铺table,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 如果不存在。

有没有更好的方法?

您可以使用以下方法

 createOrUpdate(parameter)