//存储过程P_GET_ID(?,?),第一个为输入参数,第二个为输出参数
    public static int createID()
    {
        int id=Math.abs((int)(new java.util.Date()).getTime());;
        try {
            Context ctx = new InitialContext();
            javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("ticsDS");
            Connection conn = ds.getConnection();
            CallableStatement cs=conn.prepareCall("{call P_GET_ID(?,?)}");
            cs.setString(1,"YHSCX_ZTB");
            cs.registerOutParameter(2,java.sql.Types.INTEGER);
            cs.execute();
            id=cs.getInt(2);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return id;
    }

解决方案 »

  1.   

    谢谢楼上的回复,可我要调用的是一个外部文件,比如一个test.sql文件该怎么做呢?
      

  2.   

    把文件内容读进来,当sql语句执行罗
      

  3.   

    要调用的是一个外部文件,比如一个test.sql?
    test.sql里面是什么内容?生成存储过程的DML?
    这样的话就不是调用存储过程了,因为它还没有生成
      

  4.   

    这个test.sql其实就是一系列的SQL语句,但是我该如何读取才能把文件内容读进来,当sql语句执行呢?