将Java Map序列化为db

时间:2008-12-15 22:28:59

标签: serialization

我正在使用jdbc来处理我的数据库。 我想直接在db,oracle中存储一个HashMap。 我想我需要序列化Map及其内容,它们只是String。 Map已经实现了Serializeable,但我的问题是如何使用jdbc将Map放入SQL? 例如,我有一个jdbcTemplate.update(“insert into ....”,new Object [] {....},new int [] {....}) 我只是把Map放在Object数组中? 感谢

2 个答案:

答案 0 :(得分:2)

您需要一个包含键/值列的表,如果您要存储多个映射,则需要一个标识列(或另一个表的外键,其中包含hashmap所属的数据)。

然后在JDBC中,创建一个预准备语句(插入myhashmap(id,foreign_id,key,val)值(?,?,?,?))ONCE,然后循环遍历hashmap中的每个元素,设置参数在语句上并在查询上调用execute。

(抱歉,没有附近发布代码片段的任何代码,也不想输入错误的示例)。

这也可以简单地扩展到String的地图 - >对象,您希望在DB中的Object中存储每个字段。即,它基本上像数据库中的标准表和“关键”列。列表类似,但有一个'rank'列表示排序。

答案 1 :(得分:0)

我过去的方法是在表中创建一个列来存储序列化对象。 Oracle中的数据类型应为“blob”或等效类型。

然后可以使用ResultSet.setBytes()和ResultSet.getBytes()

编写/检索它