Oracle 操作图片

发表于:2007-07-14来源:作者:点击数: 标签:
Oracle 操作图片 package testapp; import java . sql .*; import java.io.*; public class Blobtest { public Blobtest() { } public static void main (String args []) throws SQL Exception, IOException { //write(); read(); } static void read() thr
Oracle 操作图片

package testapp;

import java.sql.*;
import java.io.*;

public class Blobtest {

public Blobtest() {
}

public static void main (String args [])
throws SQLException, IOException
{
//write();
read();

}

static void read() throws SQLException, IOException {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

// Connect to the database
// You can put a database name after the @ sign in the connection URL.
Connection conn =
DriverManager.getConnection ("jdbc:oracle:thin:@ebizser:1521:serverdb", "scott", "tiger");

// It's faster when you don't commit automatically
conn.setAutoCommit (false);

// Create a Statement
Statement stmt = conn.createStatement ();

// Do a query to get the row with NAME 'StreamExample'
ResultSet rset =
stmt.executeQuery ("select col2 from lobtest where userid=1");

// Get the first row
if (rset.next ())
{
// Get the data as a Stream from Oracle to the client
InputStream gif_data = rset.getBinaryStream (1);

// Open a file to store the gif data
FileOutputStream os = new FileOutputStream ("example.jpe");

// Loop, reading from the gif stream and writing to the file
int c;
while ((c = gif_data.read ()) != -1)
os.write (c);

// Close the file
os.close ();
}

// Close all the resources
if (rset != null)
rset.close();

if (stmt != null)
stmt.close();

if (conn != null)
conn.close();
}

static void write() throws SQLException, IOException {

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// Connect to the database
// You can put a database name after the @ sign in the connection URL.
Connection conn =
//DriverManager.getConnection ("jdbc:oracle:thin:@ebizser:1521:serverdb", "scott", "tiger");
DriverManager.getConnection ("jdbc:oracle:oci8:@ebdb", "scott", "tiger");

// It's faster when you don't commit automatically
conn.setAutoCommit (false);

// Create a Statement

File file = new File("C:\\Documents and Settings\\gzb.ECOM\\My Documents\\My Pictures\\28-3-16933_jinxishan34s.jpe");

InputStream is = new FileInputStream ("C:\\Documents and Settings\\gzb.ECOM\\My Documents\\My Pictures\\28-3-16933_jinxishan34s.jpe");
PreparedStatement pstmt =
conn.prepareStatement ("insert into lobtest (userid, col2 ) values (?, ?)");

pstmt.setBinaryStream(2, is, (int)file.length ());
pstmt.setInt (1, 2);
pstmt.execute ();

if (pstmt != null)
pstmt.close();

if (conn != null)
conn.close();
}

}

原文转自:http://www.ltesting.net