数据库名:test,表名:student,表结构:
s_id char(4)
s_name char(10)
s_age int存储过程如下:
CREATE PROCEDURE insert_student  @param1 char(4),@param2 char(10),@param3 int  output AS
insert into student values(@param1,@param2,@param3)程序代码:
import java.sql.*;       public class ConSqlserver {
Connection con;
Statement st;
ResultSet rs; public ConSqlserver() {
try {
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
Class.forName(driver);
con = DriverManager.getConnection(url, "sa", "807247");
System.out.println("连接成功!");
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}      public static void main(String args[]) { ConSqlserver conser = new ConSqlserver();
                insertdata("0001","david",23); 
}
      public insertdata(string m_id,string m_name,int m_age){
         //这个调用存储过程的函数要怎么写?
        }
    }
 

解决方案 »

  1.   

    就说一点
    使用CallableStatement
      

  2.   

    请参考微软的文章 
    通过 JDBC 驱动程序 - 使用带有输入参数的存储过程
      

  3.   

    忘了说一句,那个需要登陆,这里有不需要登陆的!
    http://msdn2.microsoft.com/zh-cn/library/ms378046.aspx
      

  4.   

    Connection conn = null;
            CallableStatement cstmt = null;   cstmt = conn.prepareCall(
                        "{call  insert_student }" );大概类似于上面
      

  5.   

    ResultSet rs=null;
    try {
    Connection con=DbJdbc.getJDBC();
    CallableStatement cmd =con.prepareCall("{call sp_show (?)}");
    cmd.setString(1, "af");
    cmd.execute();
    rs=cmd.getResultSet();
    while(rs.next()){
    System.err.print(rs.getString(3));
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }