在Java中,如何在字符串类型的SQL表列中存储对象数组?
我在ORACLE SQL中有一个表在Java中,如何在字符串类型的SQL表列中存储对象数组?,java,sql,arrays,Java,Sql,Arrays,我在ORACLE SQL中有一个表EMPLOYEE\u PREF。 它有列EMP\u ID,EMP\u KEY,EMP\u TYPE,EMP\u VALUE 基本上,EMP_值是一个字符串。它是一个带书签的url 我必须重新使用该表,以了解员工在选择时的偏好。 所选内容是对象数组。 设施,健康计划。。 每个对象都有键、值对: 设施对象的Ex { dataType : "string" isEligible : true label : "Facilit
EMPLOYEE\u PREF
。
它有列EMP\u ID
,EMP\u KEY
,EMP\u TYPE
,EMP\u VALUE
基本上,EMP_值
是一个字符串。它是一个带书签的url
我必须重新使用该表,以了解员工在选择时的偏好。
所选内容是对象数组。
设施,健康计划。。
每个对象都有键、值对:
设施对象的Ex
{ dataType : "string"
isEligible : true
label : "Facility Name"
name :"facilityName"
}
{
...
}
现在我不知道如何在存储VARCHAR
的EMP\u VALUE
列中存储对象数组
请帮我解决一些问题。
我应该能够以字符串形式存储,并以对象数组形式检索。我认为这是不可能的。虽然可以存储当前对象的引用,但它没有多大意义。在下一次运行中,对象将更改。你所说的书签url是什么意思 相反,您可以使用某种格式来存储每个类别下的首选项..例如[Facility=(isEligible:true,name:“facilityName”,..)类似这样的内容。要想找回它,你必须以相反的方式破解它
注意:更改DB设计,并在不同列中添加每个类别的首选项。这会让你的生活更轻松。你的数据库是什么?当您需要存储大量文本时(在本例中就是这样),您可以在Oracle中使用
text
类型,在SQL Server中,自SQL Server 2005以来,您可以在较旧版本中使用VARCHAR(MAX)
或text
。
在这些类型中,转换为字符串后,可以将文本存储为数组,如下例所示:
List<String> strings = new ArrayList<String>();
strings.add("String 1");
strings.add("Strings 2");
strings.add("Strings 3");
String token = strings.toString();
List strings=new ArrayList();
字符串。添加(“字符串1”);
字符串。添加(“字符串2”);
字符串。添加(“字符串3”);
字符串标记=strings.toString();
然后您可以将字符串标记放在数据库中。将您的对象转换为json字符串并存储它。