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

📄 oracleblobclob.java

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

/**
 * 这个实例演示Oracle的Blob和Clob数据类型的使用
 * Blob是存储在列中的字节型的对象
 * Clob是存储在列中的字符型的对象
 */

public class OracleBlobClob {
  
  public static void main(String argv[])
  {
  //声明Blob和Clob变量
    java.sql.Blob myBlob     = null;
    java.sql.Clob myClob     = null;
    java.sql.Connection conn = null;

    //属性对象
    Properties props = new Properties();
    //设置属性
    props.put("user","scott");
    props.put("password","tiger");
    props.put("server","myOracle8Server");

    try {
    //加载数据库驱动程序	
      Driver myDriver = (Driver)
          Class.forName("weblogic.jdbc.oci.Driver").newInstance();
      //建立数据库连接,给定属性对象
      conn = myDriver.connect("jdbc:weblogic:oracle" , props);
      

      // 设置Oracle自动释放属性为false. 
      // 这是操作Blobs和Clobs所必需的
      conn.setAutoCommit(false);

      // ============== Create Table ==================
      // 创建拥有Blob和Clob列的表 
      try {
          // 如果表不存在,则创建
          Statement crstmt = conn.createStatement();
          System.out.println("\nCreating table with Blobs and Clobs...");
          crstmt.execute("create table lobtest (id int, blobcol Blob, clobcol Clob)");
          crstmt.close();
      }
      catch (Exception e) {
      //异常处理
          System.out.println("Exception: " + e);
          System.out.println("Table already exists. Dropping it and re-creating...");
          Statement crstmt2 = conn.createStatement();
          crstmt2.execute("drop table lobtest");
          crstmt2.execute("create table lobtest (id int, blobcol Blob, clobcol Clob)");
          crstmt2.close();
      }
      System.out.println("Table created.");


      // ============== 初始化blob和clob值 ==================
      Statement stmt = conn.createStatement();
      System.out.println("\nInserting row with blank blob and clob columns...");
      //执行插入操作
      stmt.execute("insert into lobtest values (44,EMPTY_BLOB(),EMPTY_CLOB())");
      System.out.println("Row has been inserted.");

      // ============== 操作Blob列 ======================
      // 获取Blob列的引用
      stmt.execute("select * from lobtest where id=44");
      //获取结果
      ResultSet rs = stmt.getResultSet();
      //获取Blob
      while ( rs.next() ) {
          myBlob = rs.getBlob("blobcol");
      }

      // 创建一个字节数组并存入一些数据
      System.out.println("\nCreating the following byte array:");
      int STREAM_SIZE = 10;
      byte[] b = new byte[STREAM_SIZE];
      for (int i=0; i < STREAM_SIZE; i++) {
          b[i] = (byte)(40 + (i%20)); // 范围 40-60
          System.out.println("byte[" + i + "] = " + b[i]);         
      }

      // 写入字节数组到流,并存Blob column 
           System.out.println("\nWriting the byte array to a stream

⌨️ 快捷键说明

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