用oracle 的 blob字段
在java中将图片写一个流,传进去。

解决方案 »

  1.   

    Long WAN 字段?
    是BLOB吧?
      

  2.   

    import java.sql.*;
    import java.io.*;
    class BlobTest {
        public static void main(String args[]){
            try{
                RandomAccessFile raf = new RandomAccessFile("DukeTest.bmp","rw");
                DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@your_server:1521:your_sid","user","password");
                PreparedStatement pstmt = conn.prepareStatement("INSERT INTO BlobTest valueS( ?, ? )" );
                pstmt.setString( 1, "photo1");
                File imageFile = new File("duke.gif");
                InputStream is = new FileInputStream(imageFile);
                pstmt.setBinaryStream( 2, is, (int)(imageFile.length()));
                pstmt.executeUpdate();
                pstmt = conn.prepareStatement("SELECT image FROM BlobTest WHERE name = ?");
                pstmt.setString(1, "photo1");
                ResultSet rs = pstmt.executeQuery();
                if(rs.next()){
                    Blob blob = rs.getBlob(1);
                    int length = (int)blob.length();
                    byte [] _blob = blob.getBytes(1, length);
                    raf.write(_blob);
                }
                System.out.println("Completed...");
            }catch(Exception e){
                System.out.println(e.getMessage());
            }
       }
    }