[英]SQL Query In Java + Oracle
在使用Java的过程中,我真的很想让这个SQL陷入困境。
我的问题是:我想在我的sql查询中使用一个变量,并且我似乎无法使其正常工作,它捕获了正确的值(我在标签上显示了它),但是它没有显示任何记录,但是,如果我将变量替换为“ 5”,它显示了正确的记录...
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = MySqlConnect.ConnectDb();
int idaca = Integer.parseInt(idhist.getText());
String query1 = "SELECT t.nome, h.Valor_Atual, h.Valor_Antigo, a.nome
FROM Tecnologias t, Historico h, Academista a
WHERE h.Id_Academista = a.Id_Academista AND a.Id_Academista = "+idaca+" AND h.Id_Tecnologia = t.Id_Tecnologia
AND (h.Valor_Atual || h.Valor_Antigo || t.nome) LIKE '%" + ValToSearch + "%'";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query1);
historico history;
while (rs.next()) {
history = new historico(rs.getString("Nome"), rs.getInt("Valor_Antigo"),
rs.getInt("Valor_Atual"), rs.getString("Nome"));
historicoList.add(history);
} //END WHILE
} //END TRY
catch (Exception e) {
JOptionPane.showInputDialog(null, e);
}//END CATCH
到目前为止,这就是我的代码。
先感谢您! 干杯
在AND h.Id_Tecnologia
之前放置一个空格。 那应该解决您的问题。
您不担心在ValToSearch
得到类似' OR 1 IN (DELETE * FROM Tecnologias )
吗? 使用参数转义或更好的一些查询生成器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.