ในการเก็บภาพในฐานข้อมูล Oracle โดยทั่วไปจะใช้ประเภทหยด ดังนั้น ตรวจสอบให้แน่ใจว่าคุณมีตารางที่สร้างด้วยประเภทข้อมูล Blob เป็น:
ชื่อ Null? พิมพ์----------------------------------------- -------- ---------------------------- ชื่อ VARCHAR2 (255) IMAGE BLOB
ในการแทรกรูปภาพใน Oracle ฐานข้อมูล ทำตามขั้นตอนด้านล่าง:
ขั้นตอนที่ 1:เชื่อมต่อกับฐานข้อมูล
คุณสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้ getConnection() วิธีการของ DriverManager คลาส
เชื่อมต่อกับฐานข้อมูล Oracle โดยส่ง Oracle URL ซึ่งก็คือ jdbc:oracle:thin:@localhost:1521/xe (สำหรับรุ่นด่วน) ชื่อผู้ใช้และรหัสผ่านเป็นพารามิเตอร์สำหรับเมธอด getConnection()
String oracleUrl ="jdbc:oracle:thin:@localhost:1521/xe";Connection con =DriverManager.getConnection(oracleUrl, "user_name", "password");
ขั้นตอนที่ 2:สร้างคำสั่งที่เตรียมไว้
สร้างอ็อบเจ็กต์ PreparedStatement โดยใช้ prepareStatement() วิธีการของการเชื่อมต่อ อินเตอร์เฟซ. วิธีการนี้ส่งแบบสอบถามแทรก (พร้อมตัวยึดตำแหน่ง) เป็นพารามิเตอร์
PreparedStatement pstmt =con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");
ขั้นตอนที่ 3:ตั้งค่าให้กับตัวยึดตำแหน่ง
ตั้งค่าให้กับตัวยึดตำแหน่งโดยใช้วิธี setter ของ PreparedStatement อินเตอร์เฟซ. เลือกวิธีการตามประเภทข้อมูลของคอลัมน์ ตัวอย่างเช่น หากคอลัมน์เป็นประเภท VARCHAR ให้ใช้วิธี setString() และหากเป็นประเภท INT คุณสามารถใช้เมธอด setInt() ได้
และหากเป็นประเภท Blob คุณสามารถตั้งค่าโดยใช้เมธอด setBinaryStream() หรือ setBlob() วิธีการเหล่านี้ส่งผ่านตัวแปรจำนวนเต็มแทนดัชนีพารามิเตอร์และวัตถุของคลาส InputStream เป็นพารามิเตอร์
pstmt.setString(1, "ภาพตัวอย่าง");//การแทรก Blob typeInputStream ใน =ใหม่ FileInputStream("E:\\images\\cat.jpg");pstmt.setBlob(2, ใน);ก่อน>ขั้นตอนที่ 4:ดำเนินการคำสั่ง
ดำเนินการอ็อบเจกต์ PreparedStatement ที่สร้างขึ้นด้านบนโดยใช้ execute() วิธีการของ PreparedStatement อินเทอร์เฟซ
ตัวอย่าง
<ก่อนหน้า> นำเข้า java.io.FileInputStream นำเข้า java.io.InputStream นำเข้า java.sql.Connection นำเข้า java.sql.DriverManager นำเข้า java.sql.PreparedStatement คลาสสาธารณะ InsertImageToOracleDB { โมฆะคงสาธารณะหลัก (สตริง args [ ]) ส่งข้อยกเว้น{ //การลงทะเบียนไดรเวอร์ DriverManager.registerDriver (ใหม่ oracle.jdbc.driver.OracleDriver ()); //รับการเชื่อมต่อ String oracleUrl ="jdbc:oracle:thin:@localhost:1521/xe"; การเชื่อมต่อ con =DriverManager.getConnection (oracleUrl, "ระบบ", "รหัสผ่าน"); System.out.println("เชื่อมต่อกับฐานข้อมูล Oracle....."); PreparedStatement pstmt =con.prepareStatement("INSERT INTO MyTable VALUES(?,?)"); pstmt.setString(1, "ภาพตัวอย่าง"); //การแทรกชนิด Blob InputStream ใน =new FileInputStream("E:\\images\\cat.jpg"); pstmt.setBlob(2, นิ้ว); //ดำเนินการคำสั่ง pstmt.execute(); System.out.println("บันทึกถูกแทรก"); }}
ผลลัพธ์
เชื่อมต่อกับฐานข้อมูล Oracle.....แทรกเรกคอร์ด.....