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

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


ในการเก็บรูปภาพในฐานข้อมูล MySQL โดยทั่วไปจะใช้ประเภทหยด ดังนั้น ตรวจสอบให้แน่ใจว่าคุณมีตารางที่สร้างด้วยประเภทข้อมูล Blob พร้อมคำอธิบายต่อไปนี้:

<ก่อนหน้า>+-------+--------------+------+----+---------+ --------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------+--------------+------+ -----+---------+- ------+| ชื่อ | varchar(255) | ใช่ | | NULL | || ภาพ | หยด | ใช่ | | NULL | |+-------+--------------+------+----+---------+-- -----+

ในการแทรกรูปภาพใน MySQL ฐานข้อมูล ทำตามขั้นตอนด้านล่าง:

ขั้นตอนที่ 1:เชื่อมต่อกับฐานข้อมูล

คุณสามารถเชื่อมต่อกับฐานข้อมูลโดยใช้ getConnection() วิธีการของคลาส DriverManager

เชื่อมต่อกับฐานข้อมูล MySQL โดยส่ง URL ของ MySQL ซึ่งก็คือ jdbc:mysql://localhost/sampleDB (โดยที่ sampleDB คือชื่อฐานข้อมูล) ชื่อผู้ใช้และรหัสผ่านเป็นพารามิเตอร์สำหรับเมธอด getConnection()

String mysqlUrl ="jdbc:mysql://localhost/sampleDB";Connection con =DriverManager.getConnection(mysqlUrl, "root", "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 คลาสสาธารณะ InsertImageToMySqlDB { โมฆะสาธารณะหลัก (สตริง args [ ]) ส่งข้อยกเว้น { //การลงทะเบียนไดรเวอร์ DriverManager.registerDriver (ใหม่ com.mysql.jdbc.Driver ()); //รับการเชื่อมต่อสตริง mysqlUrl ="jdbc:mysql://localhost/sampleDB"; การเชื่อมต่อ con =DriverManager.getConnection (mysqlUrl, "root", "password"); System.out.println("การเชื่อมต่อสำเร็จ......"); 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("บันทึกถูกแทรก......"); }}

ผลลัพธ์

เชื่อมต่อแล้ว......แทรกบันทึกแล้ว......