我有一个分布式 Java 应用程序,我想在两个位于不同计算机系统或 Android 设备中的数据库之间发送数据库数据。传递表数据抛出套接字连接的最佳方式是什么?我考虑将表行作为文本行或 xml 元素发送,或者为每个表创建一个类(实现可序列化接口(interface))并为该对象传输一个数组列表每张 table 。您认为哪种解决方案更有效?还有其他方法吗?数据库可能不同,如 mysql、sqlite、h2database,所以我不能使用任何数据库 native 函数来同步(在这里,当我搜索类似的东西时,我读了一些关于 orable 数据库的东西,有一个像这样的函数)。
非常感谢!!
最佳答案
我个人认为 XML 对于传输数据来说过于冗长,您最终可能会得到一半的内容数据量和一半的结构数据量。
<record>
<name>John</name>
<age>30</age>
</record>
大部分空间都丢失在定义结构中,几乎没有留给您想要的数据(John,30)。
纯文本行太有限,如果必须,至少考虑逗号分隔值。
Name;Age
John;30
第一行仅用于标签,如果您非常确定它永远不会改变,您可以将其删除。
对象的序列化对于传输数据来说太危险了,因为随着时间的推移,您可能会产生不兼容性,从而导致反序列化失败。例如,引入或移除一个字段就足够了。
看看JSON ,它不像 XML 那样冗长,而且比行更结构化。重要的部分当然是您在两端正确处理您的数据,但如果您知道发送的结构,您就可以正确地转换它。
例子:
{name: John, age: 30 }
关于java - 通过套接字连接发送数据库数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5808256/