Oracle 操作图片

** Oracle 操作图片 **

Blobtest.java Created with JBuilder

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();
  }

}

Blobtest.java Created with JBuilder

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus