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

如何将Java Hashmap保存为sql表中的属性并将其加载回,java,mysql,jdbc,hashmap,histogram,Java,Mysql,Jdbc,Hashmap,Histogram,我为大约400个对象创建了一个Hashmap。我必须将对象以及哈希映射存储在mysql表中 因此,该表的每个记录都将有一个对象及其对应的hashmap 如何实现这一点以及从sql表检索我的hashmap hashmap包含一个直方图,我希望存储的对象是一个图像。我建议您用XML序列化您的hashmap: 然后,将其放入MySQL表的TEXT列中 这当然不是最好的方法,但它很有效,您可以很容易地看到数据库中的内容是否正确 但问题是,将Hashmap存储在数据库中肯定不是一个好的解决方案。不要将Ha

我为大约400个
对象创建了一个
Hashmap
。我必须将
对象
以及
哈希映射
存储在
mysql表

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

如何实现这一点以及从
sql表
检索我的
hashmap


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

我建议您用XML序列化您的
hashmap

然后,将其放入
MySQL
表的
TEXT
列中

这当然不是最好的方法,但它很有效,您可以很容易地看到数据库中的内容是否正确


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

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

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

如果您有这样的结构,那么您可以创建一个表示实体的对象。然后将数据从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;
}
public Map loadPersonWithName(字符串regexp){
收款人=searchForPersonWithName(regexp);
if(persons.isEmpty()){
return Collections.emptyMap();
}
映射结果=新的HashMap();
用于(人:人){
result.put(person.getId(),person);
}
返回结果;
}

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

我没有方向,我甚至没有要搜索的关键字。我甚至不确定这样做是否可行,但这将使我的工作变得非常简单,如果这成为可能!如果不可能,我必须序列化哈希映射并重新加载它们。重写我的问题。