如何将Java Hashmap保存为sql表中的属性并将其加载回来

时间:2014-02-26 13:26:42

标签: java mysql jdbc hashmap histogram

我为大约400个Hashmap创建了objects。我必须将objects以及hash maps存储在mysql table中。

因此,此表的每条记录都有一个对象及其对应的hashmap

如何实现此目标以及从hashmap检索我的sql table

hashmap包含直方图,我希望存储的对象是图像。

3 个答案:

答案 0 :(得分:2)

不要将HashMap存储在数据库中。将HashMap中的对象存储在数据库中。我猜你可以在数据库中拥有所有“值”时重新创建HashMap。

答案 1 :(得分:0)

我建议您使用XML序列化HashMaphttps://stackoverflow.com/a/4602230/1788704

然后,将其放在MySQL列的TEXT表格中。

这肯定不是最好的方式,但它可以正常工作,您可以轻松查看数据库中的内容是否正确。

但问题是将Hashmap存储在数据库中肯定不是一个好的解决方案。

答案 2 :(得分:0)

Map是和可以与数据库中的表进行比较的数据容器。它存储了一些数据。您应该创建一个表,其中您有一个唯一的标识键和表示实体内容的列。

如果您有这样的结构,那么您可以创建一个代表该实体的对象。然后,将数据从DB填充到对象,并使用键将它们存储在Map中。

例如

你的桌子

| ID  | NAME  | LASTNAME |

你的班级

class Person {
  long id; 
  String name;
  String lastname; 

 public long getId() {
    return id;
 }
}

你映射

地图存储=新的HashMap()<>;

潜在用途

public Map<Long,Person> loadPersonWithName(String regexp) {

       Collection<Person> persons = searchForPersonWithName(regexp);

       if(persons.isEmpty()) {
          return Collections.emptyMap();
       }

       Map<Long,Person> result= new HashMap()<>;

       for(Person person: persons) {
           result.put(person.getId(),person);
       }

       return result;
}

在方法searchForPersonWithName中,您需要实现访问数据库的逻辑并将查询结果转换为Person类的对象。