写道
- 1。首先在Oracle 中创建一个表:
- create table blobtest(
- ID int primary key,
- pic blob);
- 注意:BLOB类型用 SQL*Plus 无法显示
- 2。编写BlobTest 类
- /**
- *
- */
- package test;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.sql.Blob;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.Statement;
- /**
- * @author Administrator
- *
- */
- public class BlobTest {
- /**
- * @param args
- */
- Connection con = null;
- /*
- * 向数据库中添加BLOB数据
- */
- public void addBlob() {
- // 创建一个PreparedStatement实例
- try {
- PreparedStatement pstmt = con
- .prepareStatement("insert into blobtest values(1,?)");
- File file = new File("c:\\test.jpg");
- FileInputStream fis = new FileInputStream(file);
- // 把输入流设置为预处理语句的对象
- pstmt.setBinaryStream(1, fis, (int) file.length());
- // 执行更新
- pstmt.executeUpdate();
- pstmt.close();
- fis.close();
- } catch (Exception e) {
- // TODO 自动生成 catch 块
- e.printStackTrace();
- }
- }
- // // 创建一个表
- // public void createTable() {
- // try {
- // con.createStatement().execute(
- // "create table blobtest(id int,pic blob,"
- // + "constraint pk_blobtest primary key(id));");
- // } catch (Exception e) {
- // // TODO 自动生成 catch 块
- // e.printStackTrace();
- // }
- // }
- /**
- * 从数据库中读取BLOB数据
- *
- * @param args
- */
- public void getBlob() {
- // 创建一个Statement实例
- try {
- Statement stmt = con.createStatement();
- ResultSet rst = stmt.executeQuery("select * from blobtest where id=1");
- rst.next();
- // 获取BLOB数据和它的输入流,然后通过输入流把数据写到文件中
- Blob blob = rst.getBlob("pic");
- FileOutputStream out = new FileOutputStream(new File("c:\\k.jpg"));
- InputStream in = blob.getBinaryStream();
- int i;
- while ((i = in.read()) != -1)
- out.write(i);
- // 关闭输入、输出流
- in.close();
- out.close();
- } catch (Exception e) {
- // TODO 自动生成 catch 块
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- // TODO 自动生成方法存根
- try {
- Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
- BlobTest test = new BlobTest();
- String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
- String user = "system";
- String pwd = "kimmy";
- test.con = DriverManager.getConnection(url, user, pwd);
- //test.createTable();
- test.addBlob();
- test.getBlob();
- } catch (Exception e) {
- // TODO 自动生成 catch 块
- e.printStackTrace();
- }
- }
- }