如何在java中将HashMap插入数据库

如何在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

我试图将HashMap插入Access数据库,但不断出错。 这是我的密码:

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") + ");";