写一个javabean:其中包含下面调用存储过程的代码:

CallableStatement cstmt = conn.prepareCall( "{ call sp_CommInfo_Add( ? ? ) }" );
cstmt.setString(1,"Title");
cstmt.setString(2,"mydate");
ResultSet rs = cstmt.execute();? ?代表传入两个参数,下面的setString是给参数赋值。
因为是在bean中调用存储过程,输出什么可以放到session什么的返回jsp页面。在jsp中调用这个bean.

解决方案 »

  1.   

    以下的例子转自csdn论坛:*执行一条insert语句并传参数*/
    create or replace procedure p_test2(i in number) as
    begin
    insert into t values (i,'x'||to_char(i));
    commit;
    end;
    /<%@ page language="java" contentType="text/html;charset=gb2312"%>
    <%@page import="java.sql.*"%>
    <html>
    <body>
    <table>
    <tr><td>aaa</td><td>bbb</td></tr>
    <%
    String driver = "oracle.jdbc.driver.OracleDriver";
    String strUrl = "jdbc:oracle:thin:@192.168.1.6:1521:db";
        
        Class.forName(driver);
        Connection conn = DriverManager.getConnection(strUrl, "scott", "tiger");    String procedure = "{call p_test2 (?) }";
        CallableStatement cstmt = conn.prepareCall(procedure);
        cstmt.setInt(1,33);
        cstmt.executeUpdate();    Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("select * from t");    while(rs.next())
        {
            out.println("<tr><td>" + rs.getString(1) + "</td><td>" + rs.getString(2) + "</td></tr>");
        }    rs.close();
        stmt.close();
        conn.close();
    %>
    </table>
    <p>
    <%
    out.print(conn.isClosed());
    %></body>
    </html>
    </body> 
    </html>
      

  2.   

    http://expert.csdn.net/Expert/topic/1831/1831316.xml?temp=.2532007