日期:2014-05-18  浏览次数:20820 次

在使用tomcat连接池的情况下,怎样将普通的resultset转换为oracle.jdbc.OracleResultSet,涉及倒blob字段
在使用tomcat连接池的情况下,怎样将普通的resultset转换为oracle.jdbc.OracleResultSet,涉及倒blob字段

------解决方案--------------------
需要用OracleDataSource代替DataSource,否则强制类型转换会出错。用法如下:
import oracle.jdbc.pool.*;
OracleDataSource ds = new OracleDataSource();
ds.setDriverType("thin");
ds.setServerName("dssw2k01");
ds.setPortNumber(1521);
ds.setDatabaseName("orcl"); // sid
ds.setUser("scott");
ds.setPassword("tiger");

Connection conn = ds.getConnection();

Statement stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO FUJIAN (NUM_ID,BFILE) VALUES("+numid+",EMPTY_BLOB())"); //增加空的BLOB
ResultSet myResultSet=stmt.executeQuery("SELECT BFILE FROM FUJIAN WHERE NUM_ID="+numid+" FOR UPDATE");//锁定更新BLOB
myResultSet.next();
BLOB myBlob=((OracleResultSet)myResultSet).getBLOB("BFILE");//强制类型转换