如何在java中将HashMap插入数据库
我试图将HashMap插入Access数据库,但不断出错。 这是我的密码:如何在java中将HashMap插入数据库,java,Java,我试图将HashMap插入Access数据库,但不断出错。 这是我的密码: for (Entry<String, String> entry : mapImpedanceAll.entrySet()) { prep1 = entry.getKey().replaceAll("\\s", "_"); prep1=prep1.replace(":",""); prep1=prep1.replace("<","LessThan"); prep1=pre
for (Entry<String, String> entry : mapImpedanceAll.entrySet()) {
prep1 = entry.getKey().replaceAll("\\s", "_");
prep1=prep1.replace(":","");
prep1=prep1.replace("<","LessThan");
prep1=prep1.replaceAll("\\." ,"");
prep1=prep1.replaceAll("\\(s\\)" ,"");
prep1=prep1.replaceAll(",$" ,"");
prep1=prep1.replaceAll("%" ,"");
prep1=prep1.replace("-" ,"_");
prep1=prep1.replace("_" ,"");
if(dbColNames.contains(prep1)) {
try {
Statement qu = null;
qu =conn.createStatement();
String stg = "INSERT INTO Impedance2 "+prep1+" VALUES('"+entry.getValue()+"')";
qu.execute(stg);
} catch (Exception e) {
e.printStackTrace();
}
}
}
for(条目:mapImpedanceAll.entrySet()){
prep1=entry.getKey().replaceAll(“\\s”和“”);
prep1=prep1.替换(“:”,“”);
prep1=prep1.replace(示例代码尝试执行以下操作:
对于哈希映射中的每个条目,如果有一个表列的名称等于key name,则尝试将该值插入数据库
但是,您生成的INSERT语句不考虑表中的其他列。
若要使其工作(除非为列定义了适当的默认值),请将hashmap值放在语句中适当的索引处,并用NULL(或适当的默认值;甚至可能不允许使用NULL值)填充所有其他列
如果hashmap表示一个数据集,则需要将所有数据合并到一个INSERT语句中:
我没有检查是否有可用的值,另外,使用StringBuffer会更有效。如果您不止一次这样做,请考虑使用准备好的语句。
INSERT INTO table (col1, col2, col3, col4) VALUES (NULL, value, NULL, NULL)
string sql = "INSERT INTO table (col1, col2, col3, col4) VALUES ("
+ hashmap.get("col1") + ", " + hashmap.get("col2") + ", "
+ hashmap.get("col3") + ", " + hashmap.get("col4") + ");";