MySQL डेटाबेस में इमेज रखने के लिए आमतौर पर Blob टाइप का उपयोग किया जाता है। इसलिए, सुनिश्चित करें कि आपके पास निम्नलिखित विवरण के साथ Blob डेटाटाइप वाली टेबल बनी है:
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | image | blob | YES | | NULL | | +-------+--------------+------+-----+---------+-------+
MySQL डेटाबेस में इमेज डालने के लिए, नीचे दिए गए चरणों का पालन करें:
चरण 1: डेटाबेस से कनेक्ट करें
आप DriverManager क्लास के getConnection() मेथड का उपयोग करके डेटाबेस से कनेक्ट कर सकते हैं।
MySQL URL जो jdbc:mysql://localhost/sampleDB है (जहां sampleDB डेटाबेस नाम है), यूजरनाम और पासवर्ड को पैरामीटर के रूप में getConnection() मेथड में पास करके MySQL डेटाबेस से कनेक्ट करें।
String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
चरण 2: PreparedStatement बनाएं
Connection इंटरफ़ेस के prepareStatement() मेथड का उपयोग करके PreparedStatement ऑब्जेक्ट बनाएं। इस मेथड को पैरामीटर के रूप में INSERT क्वेरी (प्लेसहोल्डर के साथ) पास करें।
PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTable VALUES(?, ?)");चरण 3: प्लेसहोल्डर पर मान सेट करें
PreparedStatement इंटरफ़ेस के सेटर मेथड का उपयोग करके प्लेसहोल्डर पर मान सेट करें। कॉलम के डेटाटाइप के अनुसार मेथड चुनें। उदाहरण के लिए यदि कॉलम 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 InsertImageToMySqlDB { public static void main(String args[]) throws Exception{ // ड्राइवर रजिस्टर करना DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // कनेक्शन प्राप्त करना String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); 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......"); } }आउटपुट
Connection established...... Record inserted......