- 浏览: 195082 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
aslijiasheng:
值得学习,对我有帮助
Spring定时器的简单使用 -
hlt:
...
Spring定时器的简单使用 -
痛苦的人:
对我太有帮助了。
oracle定时器简单操作 -
dongbiying:
...
oracle定时器简单操作 -
happygao521:
兄弟,快一年了,加油。
今天毕业了
虽然用blob的情况不多,但是还是得了解一下,网上看得有点乱,而且没有看到从数据读blob的。在此总结一下:
数据库中的建表语句如下:
以上代码必须导入Oracle驱动包
数据库中的建表语句如下:
create table blogtest(id number primary key,name varchar2(20),picture blob);
package August; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class OracleBlobTest { public static void main(String[] args) { } public static void readBlob() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521/july", "scott", "snaillocke"); Statement st = conn.createStatement(); PreparedStatement ps = conn.prepareStatement("select * from BLOBTEST where id = ?"); ps.setInt(1, 1); ResultSet rs = ps.executeQuery(); rs.next(); oracle.sql.BLOB imgBlob = (oracle.sql.BLOB) rs.getBlob(3); // 将二进制数据写入BLOB try{ FileOutputStream outStream = new FileOutputStream("D:/oracleback.png"); InputStream inStream = imgBlob.getBinaryStream(); byte[] buf = new byte[10240]; int len; while ((len = inStream.read(buf)) > 0) { outStream.write(buf, 0, len); } inStream.close(); outStream.close(); }catch(Exception e) { e.printStackTrace(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public static void writeBlob() { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521/july", "scott", "snaillocke"); Statement st = conn.createStatement(); // 插入一个空对象empty_blob() // 锁定数据行进行更新,注意“for update”语句 PreparedStatement ps = conn.prepareStatement("insert into BLOBTEST (ID, NAME, PICTURE) values (1,'fang.jpg',?)"); // 通过ORALCE.SQL.BLOB/CLOB.EMPTY_LOB()构造空BLOB/CLOB对象 ps.setBlob(1, oracle.sql.BLOB.empty_lob()); ps.execute(); ps.close(); // 再次对读出BLOB/CLOB句柄 ps = conn .prepareStatement("SELECT * FROM BLOBTEST WHERE ID=? FOR UPDATE"); ps.setInt(1, 1); ResultSet rs = ps.executeQuery(); rs.next(); oracle.sql.BLOB imgBlob = (oracle.sql.BLOB) rs.getBlob(3); // 将二进制数据写入BLOB try{ FileInputStream inStream = new FileInputStream("D:/My Pictures/oracle.png"); OutputStream outStream = imgBlob.getBinaryOutputStream(); byte[] buf = new byte[10240]; int len; while ((len = inStream.read(buf)) > 0) { outStream.write(buf, 0, len); } inStream.close(); outStream.close(); }catch(Exception e) { e.printStackTrace(); } // 再将Blob字段更新到数据库 ps = conn .prepareStatement(" update BLOBTEST set PICTURE=?"); ps.setBlob(1, imgBlob); ps.executeUpdate(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }
以上代码必须导入Oracle驱动包
发表评论
-
oracle语句性能调优
2011-05-24 19:53 899oracle语句性能调优 -
触发器Helloworld
2011-05-06 21:32 1025今天想弄一个oracle中触发器的helloworld,结果弄 ... -
oracle新增列及设置默认值
2011-02-07 00:13 2723有一张表A,有b ,c 两个字段; 向A表中插入数据R: 1 ... -
关于to_number和to_char函数
2011-02-06 20:24 1664to_number是将字符串按照指定的格式专为数字,相反,to ... -
mylost存储过程和判断是否存在表的函数
2011-02-06 19:57 1030create or replace procedure get ... -
JDBC操作Oracle
2010-10-01 10:37 2898package procudure; import ja ... -
mysql设置备忘
2010-09-27 09:58 806消除操作错误时候的“滴滴”声: 打开你的mysql的安装目录 ... -
oracle存储过程中简单地调用另一个有返回值的存储过程
2010-09-16 12:56 24606先建一张测试表: create table WWT_TABL ... -
oracle中merge的简单使用
2010-09-05 20:14 1366merge在oracle用以从另一张表中取数据插入到一张表中, ... -
oracle定时器简单操作
2010-09-05 12:50 16051首先创建一张测试表: create table JOBTES ... -
Oracle 操作备忘
2010-09-04 13:20 701在Oracle安装文件夹如:C:\oracle\network ... -
Oracle常用数据字典的查询
2010-07-25 16:23 932下面按类别列出一些Oracle用户常用数据字典的查询使用方法。 ... -
Oracle数据库相关操作
2010-07-06 17:26 876因为关于数据库的操作 ... -
mysql数据库中外键约束
2010-06-22 20:35 991mysql外键约束和oracle的外键约束有点不一样, mys ... -
事务的四大属性
2010-06-10 20:24 1608事务的四大属性 数据库事务的属性 数据库事务的属性包括 ... -
线程池和连接池
2010-06-09 21:07 4664线程池的原理: 来看一下线程池究竟是怎么 ... -
数据库中乱码出现的可能原因,个人遇到情况的总结
2010-06-05 09:37 1153在遇到乱码的时候,千万别慌了手脚,引用马士兵老师的一句话:先在 ... -
往数据库里插入中文报错Incorrect string value: '\xA8D......" for column.....
2010-06-04 23:03 3099往数据库里面数据,插 ... -
mysql脚本导入乱码问题
2010-05-23 16:33 1550今天下午把学校要用到的sql数据从sql脚本导入数据库却发现查 ...
相关推荐
C# oracle blob类型 读入与保存
java中读取ORACLE中BLOB字段存储的图片
有关Oracle对blob字段的操作读取方法,里面有详细的例子
C#访问oracle数据库类 1、执行非查询命令 2、执行查询命令 3、带blob字段读写
此文档是对于oracle数据库中blob类型字段二进制大对象的读取和解析
本文给大家浅析mybatis oracle blob类型字段的保存与读取,blob字段是指二进制大对象,用来存储大量文本数据。感兴趣的朋友一起学习吧
简单写的一个小工具,把图片存入oracle中,按clob和blob两种方式存储,并读取图片
oracle中用来存储大数据的BLOB(图片,文本,文件等)的 读写与复制方法
在Oracle数据库存储超大文件时、以流的方式分段读取和保存,避免内存溢出。本工具类提供两个方法: 1、读取文件保存到Oracle数据库Blob字段(支持超大文件) 2、从数据库中读出大字段到文件中(分块读取)
在VC6中使用ADO读取Oracle中的BLOB字段
可以从数据库中读取blob字段并插入到另一个表中,已经测试通过
使用PLSQL从数据库中读取BLOB对象
LOB类型分为BLOB和CLOB两种:BLOB即二进制大型对像(Binary Large Object),适用于存贮非文本的字节流数据(如程序、图像、影音等)。而CLOB,即字符型大型对像(Character Large Object),则与字符集相关,适于...
c#-操作数据库oracle的小代码,提供用于学习。代码主要实现从oracle读取、保存、上传图片等功能,使用了Oracle.DataAccess.dll,想了解相关知识的欢迎下载,有问题的请给我留言,谢谢。
用hibernate和jdbc读存blob或clob
使用JAVA读取ORACLE_BLOB字段实现上传下载.doc
分块读取Oracle中Blob字段内容,通过Delphi做客户端程序进行演示。 参考见: http://www.cnblogs.com/ChinaEHR/p/3390592.html
oracle中使用jdbc读写clob字段,很多细节介绍,内容全面。
Oracle slq bolb转换Base64 CLOB