⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spcursors.java

📁 weblogic应用全实例
💻 JAVA
字号:
//声明本类包含在包examples.jdbc.oracle中
package examples.jdbc.oracle;
//声明本类要引入的其他包和类
import java.sql.*;
import java.util.Properties;

/**
 * 这类光标支持只存在于Oracle 7.2及以后版本,在文件"spcursors.sql"中的PL/SQL定义了这些存储过程
 */

public class spcursors {
  
  public static void main(String[] argv)
  {
  //声明连接和结果集变量
    java.sql.Connection conn  = null;
    java.sql.ResultSet rs     = null;
    java.sql.ResultSet rs1     = null;
    java.sql.ResultSet rs2     = null;
    java.sql.ResultSet rs3     = null;
    //声明weblogic SQL语句变量
    weblogic.jdbc.common.OracleCallableStatement cstmt = null;
    weblogic.jdbc.common.OracleCallableStatement cstmt2 = null;
    weblogic.jdbc.common.OracleCallableStatement cstmt3 = null;
    
    try {
    //声明属性对象并赋值
      Properties props = new Properties();
      props.put("user","scott");
      props.put("password","tiger");
      props.put("server","DEMO");
      //加载驱动程序
      Driver myDriver = (Driver)
          Class.forName("weblogic.jdbc.oci.Driver").newInstance();
      //连接数据库
      conn = myDriver.connect("jdbc:weblogic:oracle", props);
    
      // 这里我们使用支持Oracle光标绑定的WebLogic扩展。
      //weblogic SQL语句变量
      cstmt = 
        (weblogic.jdbc.common.OracleCallableStatement)conn.prepareCall("BEGIN OPEN ? FOR select * from emp; END;");
      //注册输出参数
      cstmt.registerOutParameter(1, java.sql.Types.OTHER);
    
      // 执行
      cstmt.execute();
      //获取结果集
      rs = cstmt.getResultSet(1);
      //打印结果集
      printResultSet(rs);
      //关闭结果集
      rs.close();
      //关闭语句对象
      cstmt.close();
      //weblogic SQL语句变量2
      cstmt2 = 
        (weblogic.jdbc.common.OracleCallableStatement)conn.prepareCall("BEGIN single_cursor(?, ?); END;");
      cstmt2.registerOutParameter(1, java.sql.Types.OTHER);
    
      // 你也可以设置输入参数, 执行语句。
      cstmt2.setInt(2, 1);  
      //执行
      cstmt2.execute();
      //获取结果集
      rs = cstmt2.getResultSet(1);
      //打印结果集
      printResultSet(rs);
      // 设置输入参数, 执行语句。
      cstmt2.setInt(2, 2);  
      cstmt2.execute();
      //获取结果集
      rs = cstmt2.getResultSet(1);
      //打印结果集
      printResultSet(rs);
    // 设置输入参数, 执行语句。
      cstmt2.setInt(2, 3);  
      cstmt2.execute();
      //获取结果集
      rs = cstmt2.getResultSet(1);
      //打印
      printResultSet(rs);
    
      // 关闭CallableStatement
      cstmt2.close();
    //weblogic SQL语句3,多光标
      cstmt3 = 
        (weblogic.jdbc.common.OracleCallableStatement)conn.prepareCall("BEGIN multi_cursor(?, ?, ?); END;");
      //注册输出参数,并执行
      cstmt3.registerOutParameter(1, java.sql.Types.OTHER);
      cstmt3.registerOutParameter(2, java.sql.Types.OTHER);
      cstmt3.registerOutParameter(3, java.sql.Types.OTHER);
    
      cstmt3.execute();
    
      // 为每个参数创建结果集
      rs1 = cstmt3.getResultSet(1);
      rs2 = cstmt3.getResultSet(2);
      rs3 = cstmt3.getResultSet(3);
    
      // 打印结果集
      printResultSet(rs1);
      printResultSet(rs2);
      printResultSet(rs3);
    
      // 关闭结果集
      rs1.close();
      rs2.close();
      rs3.close();
    
      // 关闭CallableStatement
      cstmt3.close();

	} catch (Exception e) {
	//异常处理
        System.out.println("Exception was thrown: " + e.getMessage());
    } finally { //关闭连接等资源
        try {
          if(rs != null)
            rs.close();
          if(rs1 != null)
            rs1.close();
          if(rs2 != null)
            rs2.close();
          if(rs3 != null)
            rs3.close();
          if(cstmt != null)
            cstmt.close();
          if(cstmt2 != null)
            cstmt2.close();
          if(cstmt3 != null)
            cstmt.close();
          if(conn != null)
            conn.close();
        } catch (SQLException sqle) {
            System.out.println("SQLException was thrown: " + sqle.getMessage());
        }
    }
  }
  //打印结果集静态方法
  static void printResultSet(ResultSet rs) 
       throws SQLException
  {
    int rowcount = 0;
    while(rs.next()) rowcount++;
    System.out.println("Records = " + rowcount  );
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -