繁体   English   中英

Java + Oracle中的SQL查询

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM