MySQL 如何使用Java程序将图像插入Oracle数据库

MySQL 如何使用Java程序将图像插入Oracle数据库

通常使用Blob类型在Oracle数据库中保存图像。因此,请确保您已创建一个具有Blob数据类型的表,如下所示:

Name Null? Type
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(255)
IMAGE BLOB

要将图像插入 Oracle 数据库,请按照以下步骤操作:

阅读更多:MySQL 教程

步骤1:连接到数据库

您可以使用 DriverManager 类的 getConnection() 方法连接到数据库。

通过将Oracle URL(例如 jdbc:oracle:thin:@localhost:1521/xe ),用户名和密码作为参数传递给getConnection()方法来连接到Oracle数据库。

String oracleUrl = "jdbc:oracle:thin:@localhost:1521/xe";
Connection con = DriverManager.getConnection(oracleUrl, "user_name", "password");

步骤2:创建一个准备语句

使用 Connection 接口的 prepareStatement() 方法创建一个PreparedStatement对象。将insert查询(使用占位符)作为参数传递给此方法。

PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");

步骤3:设置占位符的值

使用 PreparedStatement 接口的setter方法设置占位符的值。根据列的数据类型选择方法。例如,如果列的数据类型是VARCHAR,请使用setString()方法;如果列的数据类型是INT,则可以使用setInt()方法。

如果列的数据类型是Blob,则可以使用setBinaryStream()或setBlob()方法设置其值。将表示参数索引的整数变量和InputStream类的对象作为参数传递给这些方法。

pstmt.setString(1, "sample image");
//插入Blob类型
InputStream in = new FileInputStream("E:\images\cat.jpg");
pstmt.setBlob(2, in);

步骤4:执行语句

使用 PreparedStatement 接口的 execute() 方法执行上面创建的PreparedStatement对象。

示例

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertImageToOracleDB {
   public static void main(String args[]) throws Exception{
      //注册驱动程序
      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver ());
      //获取连接
      String oracleUrl = "jdbc:oracle:thin:@localhost:1521/xe";
      Connection con = DriverManager.getConnection(oracleUrl, "system", "password");
      System.out.println("Connected to Oracle database.....");
      PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?,?)");
      pstmt.setString(1, "sample image");
      //插入Blob类型
      InputStream in = new FileInputStream("E:\images\cat.jpg");
      pstmt.setBlob(2, in);
      //执行语句
      pstmt.execute();
      System.out.println("Record inserted");
   }
}

输出

Connected to Oracle database.....
Record inserted.....

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程