[英]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.