如何将Java Hashmap保存为sql表中的属性并将其加载回
我为大约400个如何将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
对象创建了一个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类的对象。我没有方向,我甚至没有要搜索的关键字。我甚至不确定这样做是否可行,但这将使我的工作变得非常简单,如果这成为可能!如果不可能,我必须序列化哈希映射并重新加载它们。重写我的问题。