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.....
极客教程