📄 oracleblobclob.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 + -