Хранение HashMap в базе данных SQL - PullRequest
8 голосов
/ 25 апреля 2011

Как вы храните HashMap внутри базы данных SQL?Кроме того, как бы вы загрузили этот HashMap из базы данных SQL обратно в экземпляр HashMap?

Хорошо, это то, что я делаю.У меня есть база данных для хранения данных игрока для моей игры.У него есть таблица, содержащая их имена пользователей и пароли.У каждого игрока есть HashMap, в котором хранятся их свойства.Мне нужно сохранить этот HashMap в базе данных вместе с соответствующим пользователем.

Ответы [ 4 ]

13 голосов
/ 25 апреля 2011

Вам нужна таблица из 3 столбцов

пользователь,

ключ,

значение

Тогда будет выглядеть как

"пользователь1 "," property1 "," value1 "

" пользователь 1 "," property2 "," value2 "

" пользователь 2 "," property1 "," value1 "

"пользователь 3", "свойство1", "значение1"

"пользователь 3", "свойство2", "значение2"

Затем вы просто прочитаете данные и посмотрите вокругполе пользователя для перестройки каждого имеет таблицу.

6 голосов
/ 25 апреля 2011

Если вы хотите ввести значение ключа, вы можете, однако, убедиться, что ключи и значения являются строками и могут вписаться в определение столбца. Вот пример:

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.. Я предполагаю, что вы используете MySQL для ON DUPLICATE KEY части.

1 голос
/ 25 апреля 2011

Каждая запись в HashMap похожа на строку в вашей таблице. В итоге у вас будет отдельная таблица для каждого HashMap (вероятно).

Ваш параметр K на вашей карте должен быть задан как уникальный ключ в вашей таблице и проиндексирован.

Имейте в виду, что для хранения этих объектов может потребоваться более одного столбца каждый. Например, у вас может быть объект Point в качестве ключа, поэтому вам понадобятся столбец x и столбец y, а также индекс уникальности для пар x и y.

1 голос
/ 25 апреля 2011

HashMap - это структура данных. Вы можете хранить в ней данные.

Создать таблицу, эмулирующую пару ключ-значение. перебирайте ключи карты и сохраняйте их в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...