Để giữ một hình ảnh trong cơ sở dữ liệu Oracle thường sử dụng kiểu blob. Do đó, hãy đảm bảo rằng bạn có một bảng được tạo với kiểu dữ liệu blob là:
Tên Null? Thể loại----------------------------------------- -------- ---------------------------- TÊN VARCHAR2 (255) BLOB ẢNH
Để chèn hình ảnh vào Oracle cơ sở dữ liệu, hãy làm theo các bước dưới đây:
Bước 1:Kết nối với cơ sở dữ liệu
Bạn có thể kết nối với cơ sở dữ liệu bằng cách sử dụng getConnection () phương thức của DriverManager lớp học
Kết nối với cơ sở dữ liệu Oracle bằng cách chuyển URL Oracle là jdbc:oracle:thin:@localhost:1521 / xe (đối với phiên bản nhanh), tên người dùng và mật khẩu làm tham số cho phương thức getConnection ().
String oracleUrl ="jdbc:oracle:thin:@localhost:1521 / xe"; Connection con =DriverManager.getConnection (oracleUrl, "user_name", "password");
Bước 2:Tạo câu lệnh soạn sẵn
Tạo một đối tượng PreparedStatement bằng cách sử dụng standardStatement () phương pháp của Kết nối giao diện. Đối với phương pháp này, hãy chuyển truy vấn chèn (với trình giữ chỗ) dưới dạng tham số.
PreparedStatement pstmt =con.prepareStatement ("CHÈN VÀO CÁC GIÁ TRỊ CỦA MyTable (?,?)");
Bước 3:Đặt giá trị cho trình giữ chỗ
Đặt các giá trị cho trình giữ chỗ bằng cách sử dụng các phương thức setter của Câu lệnh chuẩn bị giao diện. Chọn các phương thức theo kiểu dữ liệu của cột. Ví dụ:nếu cột thuộc loại VARCHAR, hãy sử dụng phương thức setString () và nếu nó thuộc loại INT, bạn có thể sử dụng phương thức setInt ().
Và nếu nó thuộc loại Blob, bạn có thể đặt giá trị cho nó bằng các phương thức setBinaryStream () hoặc setBlob (). Đối với các phương thức này, chuyển một biến số nguyên đại diện cho chỉ số tham số và một đối tượng của lớp InputStream làm tham số.
pstmt.setString (1, "ảnh mẫu"); // Chèn Blob typeInputStream vào =new FileInputStream ("E:\\ images \\ cat.jpg"); pstmt.setBlob (2, in);Bước 4:Thực hiện câu lệnh
Thực thi đối tượng PreparedStatement đã tạo ở trên bằng cách sử dụng execute () phương pháp của Câu lệnh chuẩn bị giao diện.
Ví dụ
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 [ ]) ném Exception {// Đăng ký trình điều khiển DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver ()); // Bắt kết nối String oracleUrl ="jdbc:oracle:thin:@localhost:1521 / xe"; Kết nối con =DriverManager.getConnection (oracleUrl, "hệ thống", "mật khẩu"); System.out.println ("Đã kết nối với cơ sở dữ liệu Oracle ....."); PreparedStatement pstmt =con.prepareStatement ("CHÈN VÀO CÁC GIÁ TRỊ CỦA MyTable (?,?)"); pstmt.setString (1, "hình ảnh mẫu"); // Chèn kiểu Blob InputStream in =new FileInputStream ("E:\\ images \\ cat.jpg"); pstmt.setBlob (2, in); // Đang thực thi câu lệnh pstmt.execute (); System.out.println ("Đã chèn bản ghi"); }}Đầu ra
Đã kết nối với cơ sở dữ liệu Oracle ..... Đã chèn bản ghi .....