Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะแทรกรูปภาพในฐานข้อมูล Oracle โดยใช้โปรแกรม Java ได้อย่างไร


ในการเก็บภาพในฐานข้อมูล 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.....แทรกเรกคอร์ด.....