[英]Storing a HashMap in an SQL database
如何在SQL数据库中存储HashMap? 另外,如何将SQL数据库中的HashMap加载回HashMap实例?
好的,这就是我正在做的事情。 我有一个数据库来存储我的游戏的玩家数据。 它有一个包含用户名和密码的表。 每个玩家都有一个存储其属性的HashMap。 我需要将HashMap与其各自的用户一起存储在数据库中。
你需要一个3列表
用户,
键,
值
然后看起来像
“用户1”,“property1”,“value1”
“用户1”,“property2”,“value2”
“user 2”,“property1”,“value1”
“user 3”,“property1”,“value1”
“用户3”,“property2”,“value2”
然后,您只需读回数据并查看用户字段以重建每个表。
但是,如果要粘贴键值,则必须确保键和值是字符串并且可以适合列定义。 这是一个例子:
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 UPDATE v = new_value.
。 我假设您使用MySQL作为ON DUPLICATE KEY
部分。
HashMap是数据结构,您可以存储驻留在其中的数据。
创建一个模拟键值对的表。 迭代地图的键并将其存储在DB中。
HashMap中的每个条目就像表中的一行。 你最终会为每个HashMap(可能)都有一个单独的表。
地图中的K
参数应作为表中的唯一键强制执行并编制索引。
请记住,存储这些对象可能需要多个列。 例如,您可能将Point对象作为键,因此您需要列x和列y,以及x和y对的唯一性索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.