Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Java中的HashMap中获取特定值_Java_Hashmap - Fatal编程技术网

如何从Java中的HashMap中获取特定值

如何从Java中的HashMap中获取特定值,java,hashmap,Java,Hashmap,我试图从HashMap中获取值ID,但是我没有得到,这是代码 try { Connection lig = DriverManager.getConnection(dbURL,"root", ""); Statement inst = lig.createStatement(); String nome = txtNquest.getText(); int id = questionarios3.get(nome); Connection lig3;

我试图从
HashMap
中获取值ID,但是我没有得到,这是代码

try {
    Connection lig = DriverManager.getConnection(dbURL,"root", "");
    Statement inst = lig.createStatement();
    String nome = txtNquest.getText();
    int id = questionarios3.get(nome);
    Connection lig3;
    try {
        lig3 = DriverManager.getConnection(dbURL, "root", "");
        PreparedStatement inst2 = lig3.prepareStatement("SELECT pergunta,id FROM perguntas WHERE Questionarios_id=?");
                        inst2.setInt(1, id);
        ResultSet res = inst2.executeQuery();

        while (res.next()) {
            perguntasmap2.put(res.getString("pergunta"),
            res.getInt("id"));
        }
        lig3.close();
    } catch (SQLException e2) {
        JOptionPane.showMessageDialog(frame,"Impossível ligar à base de dados\n"
                                            + e2.getLocalizedMessage());
    }

    inst.executeUpdate("DELETE FROM respostas WHERE idPerguntas="+ id2);
我试图使用
HashMap
'perguntasmapp2'的ID,并在更具体的DELETE中使用该ID作为id2

perguntasmap2.put(res.getString("pergunta"),res.getInt("id"));
使用此ID并输入此值(id2)


我想删除特定问题中的所有答案,因为我真的不知道怎么做,我的数据库中有更多的“perguntas”和“respostas”值,这两个值都是用id来组织的,以帮助解决问题。好吧,我有一些疑问:

perguntasmap2.put(res.getString("pergunta"),res.getInt("id"));
为什么要将id放在与映射中的值相关的字段中?是不是最好放在重点领域?像

perguntasmap2.put(res.getInt("id"), res.getString("pergunta"));

您尝试使用idPerguntas=删除respostas,但您将拥有多个pergunta id,可能您必须使用
其中idPerguntas位于(id)

如果您想从pergunta的所有id中删除所有Resposta,并将pergunta的id放在hashmap的键字段中,如我上面所示,您可以执行以下操作:

String ids = new org.apache.commons.lang.StringUtils().join(map.keySet(), ",");
您不需要apache commons,您可以通过一个简单的for循环来实现这一点。

"DELETE FROM respostas WHERE idPerguntas in (" + ids + ")");

我是阿尔古马·杜维达,艾斯塔莫斯·艾伊!:)

你为什么要这么做?如果数据库中有多个pergunta=X的条目,是否要删除所有条目?还是只有一个?哪一个?你试过什么?请为您的问题添加信息,这可能有助于我们回答问题。感谢您的提示,我将立即添加信息rigth Now Done,如果您需要更多信息,请在执行字符串连接时说plsBe了解SQL注入。养成使用参数的习惯可以防止出现安全问题。
String ids = new org.apache.commons.lang.StringUtils().join(map.keySet(), ",");
"DELETE FROM respostas WHERE idPerguntas in (" + ids + ")");