請教

解决方案 »

  1.   

    public void execProc(String procName, String params) {
    //构造命令字符串///////////////////////////////////////
    String tmp[] = params.split(",");
    String cmd = "{call " + procName + "(";
    String tmp2 = ""; //类型
    String tmp3 = ""; //值
    for (int i = 0; i < tmp.length; i++) {
      cmd += "?,";
      /////////////////////////////////////////
      String[] tmp1 = tmp[i].split("#");
      tmp2 += tmp1[0] + ",";
      tmp3 += tmp1[1] + ",";
    }
    cmd = cmd.substring(0, cmd.length() - 1);
    cmd += ")}";
    tmp2 = tmp2.substring(0, tmp2.length() - 1);
    tmp3 = tmp3.substring(0, tmp3.length() - 1);
    /////////////////////////////////////////////
    String[] _tmp2 = tmp2.split(","); //拆分为数组
    String[] _tmp3 = tmp3.split(",");
    CallableStatement cstmt = null;
    try {
      cstmt = conn.prepareCall(cmd);
      for (int i = 0; i < _tmp2.length; i++) {
        if (_tmp2[i].equals("int")) {
          cstmt.setInt(i + 1, Integer.parseInt(_tmp3[i]));
        }
        else if (_tmp2[i].equals("var")) {
          cstmt.setString(i + 1, _tmp3[i]);
        }
      }
      cstmt.execute();
      cstmt.close();
    }
    catch (SQLException ex) {}
    catch (NumberFormatException ex) {}
    }

      

  2.   

    顶一下,我想知道的是  我传2个参数进去  然后返回一个RESULTSET  在这个记录集里是STRING,INT和INT3个栏位   请问该怎么写?