从java对象更新/合并SQLite DB表

Her*_*che 6 java sqlite collections orm jdbc

这是一个描述问题的最小例子:

假设从SQLiteDB读取表并将其存储在Java Collection对象中

数据库表---> Java对象


idRecord | Data   (table stored at DB)
1         One
2         Two
3         Three
4         Four
Run Code Online (Sandbox Code Playgroud)

并通过一个sqlite jdbc库:

Map objTable = new HashMap(); //...添加一些jdbc的东西,我们在objTable中获得了DBTable的副本

然后,如果对象被修改,那么就是.

idRecord | Data   (modified table stored at objTable)    
2         Two
4         FourModified
5         Five
Run Code Online (Sandbox Code Playgroud)

(id 1和3被删除,2个保持不变,4个被修改,5个被添加)

Java对象 - > DB表(这是问题......)


如何使用DB更新/合并对象表?

为什么我要合并而不是简单地将对象保存到表中

我认为,如果表足够大,那么如果只修改了其中一些记录,那么编写所有记录就没有任何意义.

  • 删除整个DBtable并在(危险的同时)循环中,遍历对象以写入新表.

  • 在第二个java obj中读取DBtable,然后比较两者(使用某种合并alghoritm)并将操作(ADD,DELETE,MODIFY)直接应用于DB.(我会接受推荐的那种比较算法)

  • 编辑:首先 不要创建集合,直接从DB读取和写入,始终通过JDBC传递查询

  • 其他更好的方法

Thanks4Reading

Car*_*nco 0

跟踪类似 ArrayList 中已修改的记录。然后当需要更新数据库时,只更新已修改的记录。

您可以创建一个执行上述操作的基类,然后为架构中的每个表扩展它。