将HashMap存储在SQL数据库中

时间:2011-04-25 07:44:22

标签: java sql hashmap

如何在SQL数据库中存储HashMap?另外,如何将SQL数据库中的HashMap加载回HashMap实例?

好的,这就是我正在做的事情。我有一个数据库来存储我的游戏的玩家数据。它有一个包含用户名和密码的表。每个玩家都有一个存储其属性的HashMap。我需要将HashMap与其各自的用户一起存储在数据库中。

4 个答案:

答案 0 :(得分:11)

您需要一个3列表

用户,

键,

然后看起来像

“用户1”,“property1”,“value1”

“用户1”,“property2”,“value2”

“用户2”,“property1”,“value1”

“用户3”,“property1”,“value1”

“用户3”,“property2”,“value2”

然后您只需读回数据并查看用户字段以重建每个具有表格。

答案 1 :(得分:6)

但是,如果要粘贴键值,则必须确保键和值是字符串,并且可以适合列定义。这是一个例子:

mysql> create table hashmap (k varchar(200), v varchar(200));
Query OK, 0 rows affected (0.24 sec)

mysql> insert into hashmap values ('key','value');
Query OK, 1 row affected (0.02 sec)

mysql> select * from hashmap;
+------+-------+
| k    | v     |
+------+-------+
| key  | value |
+------+-------+
1 row in set (0.00 sec)

此外,您可以对包含键的列k进行唯一索引,以便您的查找像哈希映射一样保持不变,并且可以使用ON DUPLICATE KEY UPDATE v = new_value.替换旧值。我假设您在ON DUPLICATE KEY部分使用MySQL。

答案 2 :(得分:1)

HashMap是数据结构,您可以存储驻留在其中的数据。

创建一个模拟键值对的表。迭代地图的键并将其存储在DB中。

答案 3 :(得分:1)

HashMap中的每个条目就像表格中的一行。你最终会为每个HashMap(可能)都有一个单独的表。

地图中的K参数应作为表格中的唯一键强制执行,并编入索引。

请记住,存储这些对象可能需要多个列。例如,您可能将Point对象作为键,因此您需要列x和列y,以及x和y对的唯一性索引。