executeUpdate排气结果

时间:2017-05-18 12:24:28

标签: java sql database

当我尝试这样做时,我有这个错误:

Exception in thread "main" java.sql.SQLException: Ensemble de résultats épuisé
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
    at oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:511)
    at e_commerce.SQL.methodeAjoutProduit(SQL.java:42)
    at e_commerce.FenetreMere.main(FenetreMere.java:27)

ensemblederésultatsépuisés意思是排气结果组我用英语思考

public static void methodeAjoutProduit(Connexion parConnexion,int parQuantité,String parNomProduit,String parIdClient) throws SQLException{
            Connexion connexion = parConnexion;
            Statement stmt = connexion.getConnexion().createStatement(); 
            ResultSet rset = stmt.executeQuery("select ID_PRODUIT FROM PRODUIT where NOM_PRODUIT='"+parNomProduit+"'");
            ResultSet rset2 = stmt.executeQuery("select ID_PANIER FROM PANIER,CLIENT where CLIENT.ID_CLIENT=PANIER.ID_CLIENT AND CLIENT.IDENTIFIANT='"+parIdClient+"'");
            rset.next();
            rset2.next();
            System.out.println(rset2.getInt(1));
            stmt.executeUpdate("insert into CONTIENT values("+parQuantité+","+rset.getInt(1)+","+rset2.getInt(2)+"'");
            stmt.close();
        }

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

此处出现错误rset2.getInt(2)

您尝试从rset2获取第二列,但只选择一列。

认为你必须切换到rset2.getInt(1)但不确定你想要做什么。

 stmt.executeUpdate("insert into CONTIENT values("+parQuantité+","+rset.getInt(1)+","+rset2.getInt(1)+"'");

正如我在评论中建议的那样,使用准备好的语句来防止SQL注入