这里有一个简单的例子来描述这个问题:
假设从SQLiteDB读取一个表并将其存储在Java集合对象中。
假设从SQLiteDB读取一个表并将其存储在Java集合对象中。
数据库表--->Java对象
idRecord | Data (table stored at DB)
1 One
2 Two
3 Three
4 Four
通过一个sqlite jdbc库:
Map objTable = new HashMap(); //...添加一些jdbc内容,我们在objTable中获得了DBTable的副本
然后如果对象被修改,就会这样。
idRecord | Data (modified table stored at objTable)
2 Two
4 FourModified
5 Five
(id 1和3已被删除,2保持不变,4被修改,5被添加)
Java对象-->数据库表(这是问题...)
如何更新/合并对象表与数据库?
为什么我想要合并而不是简单地保存对象到表中?
我认为如果表足够大,则没有意义写入所有记录,如果只有一些记录被修改。
删除整个DBtable,并在(危险的同时)循环中遍历对象以编写新表。
在第二个Java对象中读取DBtable,然后比较两者(使用某种合并算法),并将操作(ADD,DELETE,MODIFY)直接应用于DB。 (我会接受对该比较算法的建议)
编辑:首先不要创建集合,直接从DB中读取和写入,通过JDBC始终传递查询
其他更好的方法
感谢阅读