How do I execute a MS SQL Server stored procedure in java/jsp, returning table data?

前端 未结 4 2006
隐瞒了意图╮
隐瞒了意图╮ 2020-12-02 18:39

I am having difficulty executing a MS SQL Server stored procedure from Java/jsp. I wish to return a table set of data; the last line of the stored procedure is a regular se

4条回答
  •  离开以前
    2020-12-02 19:16

    Thank to Brian for the code. I was trying to connect to the sql server with {call spname(?,?)} and I got errors, but when I change my code to exec sp... it works very well.

    I post my code in hope this helps others with problems like mine:

    ResultSet rs = null;
    PreparedStatement cs=null;
    Connection conn=getJNDIConnection();
    
    try {
        cs=conn.prepareStatement("exec sp_name ?,?,?,?,?,?,?");
        cs.setEscapeProcessing(true);
        cs.setQueryTimeout(90);
    
        cs.setString(1, "valueA");
    
        cs.setString(2, "valueB");
    
        cs.setString(3, "0418");
    
        //commented, because no need to register parameters out!, I got results from the resultset. 
        //cs.registerOutParameter(1, Types.VARCHAR);
        //cs.registerOutParameter(2, Types.VARCHAR);
    
        rs = cs.executeQuery();
        ArrayList listaObjectX = new ArrayList();
        while (rs.next()) {
    
            ObjectX to = new ObjectX();
            to.setFecha(rs.getString(1));
            to.setRefId(rs.getString(2));
            to.setRefNombre(rs.getString(3));
            to.setUrl(rs.getString(4));
    
            listaObjectX.add(to);
    
        }
        return listaObjectX;
         } catch (SQLException se) {
            System.out.println("Error al ejecutar SQL"+ se.getMessage());
            se.printStackTrace();
            throw new IllegalArgumentException("Error al ejecutar SQL: " + se.getMessage());
    
        } finally {
    
            try {
    
                rs.close();
                cs.close();
              con.close();
    
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    

提交回复
热议问题