0

我有一个代表计算机部件(特别是 RAM 模块)的类,其中包含名称、品牌、价格和容量等属性。它需要有一种将自己的数据插入数据库的方法。我希望它将其所有属性插入数据库,除非该属性为空。最好的方法是循环遍历包含数据库列的字符串标题的 Map 以及获取对象相应属性的方法?这是我第一次使用反射,所以如果这实际上是最好的方法,我们将不胜感激提供一段示例代码。

在此先感谢,本

4

2 回答 2

1

不,您实际上是在谈论序列化问题而不是持久性。持久性维护实体的概念,这些实体具有预定义的属性,映射到数据库中的列。如果您只是要发现属性,那么您基本上是在序列化对象。

使用反射这样做的问题在于,当您开始拥有可能包含循环的对象图(指向已经遇到的节点的对象)时,它会变得非常复杂。

另一种选择是只拥有一个简单的属性映射协议,就像 Cocoa 所做的那样:每个对象类型都知道如何对自己进行编码,然后对自己进行解码,但是来自与格式无关的编码器或解码器。因此,如果您现在在 XML 中为 50 个不同的实体执行此操作,那么以后想要支持 JSON,您可以无需更改任何实体代码。

于 2013-01-31T00:25:54.527 回答
0

Some frameworks already implement what you are looking for :) take a look at : http://en.wikipedia.org/wiki/Object-relational_mapping for some concepts:

I can suggest you to take a look on Ebean that comes with playframework, and hibernate both do what you are looking for.

于 2013-02-03T03:30:22.547 回答