Java教程-在Oracle数据库中存储图像的示例

在Oracle数据库中存储图像的示例
您可以通过使用PreparedStatement接口在Java中将图像存储在数据库中。
PreparedStatement的setBinaryStream()方法用于将二进制信息设置到参数索引中。
setBinaryStream方法的签名
setBinaryStream()方法的语法如下:
1) public void setBinaryStream(int paramIndex, InputStream stream)
throws SQLException
2) public void setBinaryStream(int paramIndex, InputStream stream, long length)
throws SQLException
为了将图像存储到数据库中,表中使用BLOB(Binary Large Object)数据类型。例如:
1. CREATE TABLE "IMGTABLE"
2. ( "NAME" VARCHAR2(4000),
3. "PHOTO" BLOB
4. )
5. /
让我们编写jdbc代码将图像存储在数据库中。在这里,我们使用d:d.jpg作为图像的位置。您可以根据图像的位置进行更改。
在数据库中存储图像的Java示例
import java.sql.*;
import java.io.*;
public class InsertImage {
public static void main(String[] args) {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
PreparedStatement ps=con.prepareStatement("insert into imgtable values(?,?)");
ps.setString(1,"sonoo");
FileInputStream fin=new FileInputStream("d:\g.jpg");
ps.setBinaryStream(2,fin,fin.available());
int i=ps.executeUpdate();
System.out.println(i+" records affected");
con.close();
}catch (Exception e) {e.printStackTrace();}
}
}
如果您查看表,记录已存储在数据库中,但是图像将不会显示。为了显示图像,您需要从数据库中检索图像,我们将在下一页中介绍这个过程。