如何在SQL数据库中存储HashMap?另外,如何将SQL数据库中的HashMap加载回HashMap实例?
好的,这就是我正在做的事情。我有一个数据库来存储我的游戏的玩家数据。它有一个包含用户名和密码的表。每个玩家都有一个存储其属性的HashMap。我需要将HashMap与其各自的用户一起存储在数据库中。
答案 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对的唯一性索引。