从JSP页面传入8个参数s1,s2,s3,s4,s5,s6,s7,s8,都不能为空,有一个存储过程proc_aa是判断这8个参数的状态返回一个值stauts,用一个java类来调用这个存储过程,返回stauts
求达人帮忙。多谢

解决方案 »

  1.   

    String procedure_name="update_user_data";
    String call_procedure_string="{call "+procedure_name+"(?,?,?,?,?,?,?) }";try{
    Connection con;
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testDatabase","sa","");
    CallableStatement callable_statement=con.prepareCall(call_procedure_string);//创建对象
    callable_statement.setString(1,"xxbit");
    callable_statement.setString(2,"xxb");
    callable_statement.setInt(3,23);
    callable_statement.setString(4,"男");
    callable_statement.setString(5,"哈尔滨");
    callable_statement.setString(6,"11111");
    callable_statement.setLong(7,2);
    callable_statement.executeUpdate();
    con.close();
    }
    catch(SQLException e1){
    out.println("SQL异常!");
       }
    %> 
      

  2.   

    谢谢楼上的
    调用存储过程之后,存储过程还要返回一个stauts值啊   这怎么写?
      

  3.   

    如果是更新操作
    判断executeUpdate()方法是否返回>0不就行了
      

  4.   

    connection.setAutoCommit(false); 
    CallableStatement proc = 
        connection.prepareCall("{ ? = update_user_data(?,?,?,?) }"); 
    proc.registerOutParameter(1, Types.INTEGER); 
    ...
    cs.execute(); 
    int result= proc.getInt(2); 
      

  5.   

    当存储过程返回一个值时,你必须使用registerOutParameter方法告诉JDBC驱动器该值的SQL类型是什么。你也必须调整存储过程调用来指示该过程返回一个值。
      

  6.   

    sorry,
    int result= proc.getInt(2); 
    should be
    int result= proc.getInt(1);