繁体   English   中英

将HashMap存储在SQL数据库中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM