有一账号对象Account,具有以下属性
int id;
String name;
String password;
Date createTime;能不能给一个java调用oracl存储过程(带参数)的简单列子,功能包括插入、修改、删除、查询,代码包括存储过程和java代码!

解决方案 »

  1.   

    public void insert(int id ,String name ,String password,Date createtime){
    try {
    CallableStatement stmt=scon.con.prepareCall("execute 存储名 ?,?,?,?");
    stmt.setInt(1,id);
                      stmt.setString(2,name);
                      stmt.setString(3,password);
                      stmt.setDate(4,creattime)
    stmt.execute();
    stmt.close();
    } catch (SQLException e) {

    e.printStackTrace();
    }
    }
      

  2.   

       String result="0";
       String pro_sql="";
       Connection conn=null;
       ResultSet rtst=null;
       String fetched[]=new String [10];
                     CallableStatement cs=null;                     cs=conn.prepareCall("{call WFP_00003(?,?,?,?)}");
       cs.setString(1,oper_id);
       cs.setString(2,fetched[0]);
       cs.setString(3,fetched[1]);
       cs.registerOutParameter(4,Types.VARCHAR);
       cs.execute();
      

  3.   

    1.java代码
    Connection conn=null;
    //取得数据库连接
    conn =....;
    //准备SQL语句 
    String strSQL = "{call sp_InsertAccount(?,?,?,?)}"; 
    //准备可调用语句对象 
    CallableStatement  sqlStmt = conn.prepareCall(strSQL); 
    //设置输入参数 
    sqlStmt.setInt(1,id); 
    sqlStmt.setString(2,name); 
    sqlStmt.setString(3,password); 
    sqlStmt.setDate(4,createTime); 
    //登记输出参数 
    //sqlStmt.registerOutParameter(6,java.sql.Types.Array); 
    //执行该存储过程
    sqlStmt.executeUpdate();
    2.存储过程
    create procedure sp_InsertAccount(id NUMBER, name  VARCHAR2, password VARCHAR2 , createTime date )  as
    begin  
    INSERT INTO Account  VALUES (id, name,password,createTime);
    end sp_InsertAccount; 
      

  4.   

    你们的都不能返回数据集,用我这个可以查询
    oracle.jdbc.OracleCallableStatement stmt=
                    (oracle.jdbc.OracleCallableStatement)conn.prepareCall("" +
                     "{ call tempPackage.returnRow(?,?) 
                stmt.setString(1,"1");
                stmt.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR );
                stmt.execute();