请问java调用sqlserver2000数据库存储过程的方法和思想,及其怎么利用结果?
迷惘中!!!
谢谢!!!

解决方案 »

  1.   

    用CallableStatement 你搜一下这个吧。网上很多现成的例子。我现在没有现成的例子。
      

  2.   

    1. 某个数据库中有个Customer_Table表:
    create table Customer_Table(
    customerID varchar(14),
    customerName varchar(20),
    phone varchar(14),
    email varchar(30),
    address varchar(50),
    customerIntro varchar(100),
    regDate datetime,
    primary key(customerID)
    )2. 然后有个存储过程Customer_Insert:
    if object_id(Customer_Insert) is not null
    begin drop procedure Customer_Insert endgo
    create procedure Customer_Insert(
    @customerID varchar(14),
    @customerName varchar(20),
    @phone varchar(14),
    @email varchar(30),
    @address varchar(50),
    @customerIntro varchar(100)
    ) as
    insert into Customer_Table 
    values(@customerID, @customerName, @phone, @email, @address, 
    @customerIntro, GETDATE());3. 最后是完整的示范程序:
    // CallProcedure.java -- 调用存储过程示例。
    // 2007-01-10 18:41import java.sql.*;public class CallProcedure {
    public static void main(String[] args) {
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_course";
            String user ="sa";                 // user name
            String password = "sqlserversaps"; // password
            
    try {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection con = DriverManager.getConnection(url, user, password);
    CallableStatement cstmt = con.prepareCall(
    "{call Customer_Insert(?, ?, ?, ?, ?, ?)}");
    cstmt.setString(1, "111111111");
    cstmt.setString(2, "111111111");
    cstmt.setString(3, "111111111");
    cstmt.setString(4, "111@11111");
    cstmt.setString(5, "111111111");
    cstmt.setString(6, "111111111");
    cstmt.execute();
    System.out.println("Done!");
    }
    catch(Exception e) {
    e.printStackTrace();
    }
    }
    }
      

  3.   

    请问java调用sqlserver2000数据库存储过程的方法和思想,及其怎么利用结果?
    根据数据库本身存储过程如何返回参数而定,
    String strSQL = "{? = call UP_QLINECHGNEW(?)}";
         db2Conn.setAutoCommit(false);
         CallableStatement sqlstmt = db2Conn.prepareCall(strSQL);
         sqlstmt.setString(2, "111111111");
         sqlstmt.registerOutParameter(1,Types.INTEGER);  //这个就是返回参数,另外返回类型注意,
    另外如果返回的是结果集得话。如同访问数据库一样得到resultSet
    一样可以访问。网上很多,比较容易的。祝你好运!
      

  4.   

    CallableStatement cst = con.prepareCall("{call bao.goucheng(?,?,?)}");
    明白?