java - 通过套接字连接发送数据库数据

标签 java xml database serialization synchronize

我有一个分布式 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/

相关文章:

c# - LINQ to sql插入数据c#

sql - Rails 分页 - 从实例 ID 中查找页码

java - imageview 的位图错误

java - elasticsearch - 增加计数器或创建文档(如果不存在)

c# - 如何折叠空的 xml 标签?

xml - 为什么 Clojure 将 xml 文档表示为 HashMap ?

java - 来自 HTTP 的 XML 解析文件

java - 让 Android 选择下一个 SQLITE _ID

java - 如何解决java.lang.RuntimeException : Unable to start activity?

database - 向正确的用户显示正确的列