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