java - 对于这种情况我应该使用反射吗?

标签 java database reflection dictionary

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

提前致谢, 本

最佳答案

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

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

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

关于java - 对于这种情况我应该使用反射吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616386/

相关文章:

java - JSP/Servlet 如果错误停留在同一页面而不是转发

java - 如何解析多项式表达式以计算其根?

java - 如何作为方法的结果返回 DataSnapshot 值?

sql - SQL SERVER 中的分组依据/打印相关查询

c# - dll 中的静态属性生存期或缓存方法

Java 反射库 - 使用没有包信息的 Class.forName()

java - 使用调用处理程序打开和关闭 SQL session

MySQL:有人用过 TokuDB 存储引擎吗?

java - 反射和多维数组

.net - 如何通过反射引用字段