1

イメージを Oracle データベースに保存するにはどうすればよいですか? また、そのデータベースから画像を取得するにはどうすればよいですか? これが私のコードです:

import java.io.*; 
import java.sql.*; 
import java.util.*; 
class Pic3 
{ 
    public static void main(String args[]) throws Exception 
    { 
        Statement s; 
        Connection c; 
        FileInputStream fis; 
        PreparedStatement ps; 
        File file; 
        try 
        { 
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
            c=DriverManager.getConnection("Jdbc:Odbc:sidhu","system","system"); 
            s=c.createStatement(); 
            s.execute("Create table Img1(Image_No number(5),Photo blob)"); 
        } 
        catch(Exception e1) 
        { 
            e1.printStackTrace(); 
        } 

        try 
        { 
            file=new File("f:/image.jpeg"); 
            fis=new FileInputStream(file); 

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
            c=DriverManager.getConnection("Jdbc:Odbc:sidhu","system","system"); 

            String str="insert into Img1 values(?,?)"; 
            ps=c.prepareStatement(str); 
            ps.setInt(1,(int)file.length()); 
            ps.setBinaryStream(2,fis,(int)file.length()); 

            //System.out.println("success"); 
            ps.execute(); 

            ps.close(); 
            c.close(); 
        } 
            catch(SQLException e) 
        { 
            e.printStackTrace(); 
        } 
    } 
} 
4

1 に答える 1

1

このように行を変更します

Class.forName("oracle.jdbc.driver.OracleDriver");
ps.setBinaryStream(2,fis,(byte)file.length());  

それ以外の

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
ps.setBinaryStream(2,fis,(int)file.length());  

なぜなら

JDBC-ODBC bridge driver基礎となるデータベースが BLOB をサポートしていても、BLOB をサポートしていません。

于 2012-11-18T06:31:33.413 に答える