ormlite 删除对象时注意事项

最近在使用这个

compile 'com.j256.ormlite:ormlite-android:5.0'
compile 'com.j256.ormlite:ormlite-core:5.0'
依赖的时候,新建的数据库表格中,第一行和最后几行,多次进出应用的时候,总会多出很多为null的数据.看着很烦,试了很多方法都删除不了这些没用的数据,后来看了源码,原来是bean中要加一个id的属性,添加到数据库中,删除数据需要根据id进行删除的,之前觉得这个id没什么用,就把他干掉了,后面加上后,删除成功!

ORMLite中,存储数组对象,由于它主要是基于对象关系映射(Object Relational Mapping),所以通常不是直接操作数组,而是将数组元素转换为单独的对象实例并保存。这可以通过以下步骤实现: 1. **定义模型类**:如果数组包含某种类型的元素,你需要首先为该元素定义一个对应的实体类(Entity Class)。例如,如果你有一个整数数组,会先定义一个名为IntegerItem的类。 ```java @DatabaseTable(tableName = "array_table") public class IntegerItem { @DatabaseField(generatedId = true) private int id; @DatabaseField private int value; // Getters and setters... } ``` 2. **将数组转换为列表**:将实际的数组转换为List,因为ORMLite更倾向于处理列表而不是数组。 ```java List<IntegerItem> items = new ArrayList<>(); items.add(new IntegerItem(0, arrayElement1)); items.add(new IntegerItem(1, arrayElement2)); // ... @DatabaseTable(tableName = "array_container") public class ArrayContainer { @DatabaseField(generatedId = true) private long id; @DatabaseField private List<IntegerItem> itemArray; // Getters and setters... } ``` 3. **插入到数据库**:在`ArrayContainer`对象中设置`itemArray`属性,然后使用`ormliteSqliteOpenHelper`的`insert`方法保存。 ```java ArrayContainer container = new ArrayContainer(); container.setItemArray(items); dbHelper.insert(container); ``` 4. **查询处理**:从数据库查询,同样返回的是`List<IntegerItem>`,你需要在业务逻辑层再次组装成数组。 请注意,这个过程可能会带来性能开销,特别是数组很大。因此,在设计应权衡是否真的需要在数据库中存储整个数组,或者是否有更好的数据存储方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值