Heim > Datenbank > MySQL-Tutorial > Wie füge ich mit JDBC ein Bild in die Datenbank ein?

Wie füge ich mit JDBC ein Bild in die Datenbank ein?

WBOY
Freigeben: 2023-08-29 14:05:02
nach vorne
817 Leute haben es durchsucht

Die Methode

setBinaryStream()如何使用 JDBC 将图像插入数据库? der Schnittstelle

PreparedStatementinterface akzeptiert eine Ganzzahl, die den Parameterindex darstellt, und ein InputStream-Objekt und setzt den Parameter auf das angegebene InputStream-Objekt. Sie können diese Methode immer dann verwenden, wenn Sie sehr große Binärwerte senden müssen.

SQL-Datenbank bietet einen Datentyp namens Blob (Binary Large Object), in dem Sie große Binärdaten wie Bilder speichern können.

Bilder mit JDBC speichern

Wenn Sie Bilder mit dem JDBC-Programm in der Datenbank speichern müssen, erstellen Sie eine Tabelle mit dem Datentyp „Blob“ wie unten gezeigt:

CREATE TABLE Tutorial(Name VARCHAR(255), Type INT NOT NULL, Logo BLOB);
Nach dem Login kopieren

Stellen Sie jetzt mit JDBC eine Verbindung zur Datenbank her und bereiten Sie eine PreparedStatement-Einfügung vor Werte in die oben erstellte Tabelle einfügen:

String query = "INSERT INTO Tutorial(Name, Type, Logo) VALUES (?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
Nach dem Login kopieren

Legen Sie den Wert des Platzhalters mit der Setter-Methode der PreparedStatement-Schnittstelle fest und legen Sie den Wert des Blob-Datentyps mit der setBinaryStream()-Methode fest.

FileInputStream fin = new FileInputStream("javafx_logo.jpg");
pstmt.setBinaryStream(3, fin);
Nach dem Login kopieren

Beispiel

Das folgende Beispiel zeigt, wie man mit einem JDBC-Programm ein Bild in eine MySQL-Datenbank einfügt. Hier erstellen wir eine Tabelle mit einem Blob-Datentyp, fügen Werte in die Tabelle ein (ein BinaryStream-Objekt vom Typ Blob) und rufen den Inhalt der Tabelle ab.

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class InsertingImageToDatabase {
   public static void main(String args[]) throws Exception {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampleDB";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating the Statement
      Statement stmt = con.createStatement();
      //Executing the statement
      String createTable = "CREATE TABLE Tutorial( "
         + "Name VARCHAR(255), "
         + "Type VARCHAR(50), "
         + "Logo BLOB)";
      stmt.execute(createTable);
      //Inserting values
      String query = "INSERT INTO Tutorial(Name, Type, Logo) VALUES (?, ?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "JavaFX");
      pstmt.setString(2, "Java_library");
      FileInputStream fin = new FileInputStream("E:\images\javafx_logo.jpg");
      pstmt.setBinaryStream(3, fin);
      pstmt.execute();

      pstmt.setString(1, "CoffeeScript");
      pstmt.setString(2, "scripting Language");
      fin = new FileInputStream("E:\images\coffeescript_logo.jpg");
      pstmt.setBinaryStream(3, fin);
      pstmt.execute();
      pstmt.setString(1, "Cassandra");
      pstmt.setString(2, "NoSQL database");
      fin = new FileInputStream("E:\images\cassandra_logo.jpg");
      pstmt.setBinaryStream(3, fin);
      pstmt.execute();
      System.out.println("Data inserted");
      ResultSet rs = stmt.executeQuery("Select *from Tutorial");
      while(rs.next()) {
         System.out.print("Name: "+rs.getString("Name")+", ");
         System.out.print("Tutorial Type: "+rs.getString("Type")+", ");
         System.out.print("Logo: "+rs.getBlob("Logo"));
         System.out.println();
      }
   }
}
Nach dem Login kopieren

Ausgabe

Connection established......
Data inserted
Name: JavaFX, Tutorial Type: Java_library, Logo: com.mysql.jdbc.Blob@7dc5e7b4
Name: CoffeeScript, Tutorial Type: scripting Language, Logo:
com.mysql.jdbc.Blob@1ee0005
Name: Cassandra, Tutorial Type: NoSQL database, Logo: com.mysql.jdbc.Blob@75a1cd57
Nach dem Login kopieren

Hinweis: Sie können Bilder vom Typ .gif, .jpeg oder .png nur mit JDBC-Programmen speichern und abrufen.

Das obige ist der detaillierte Inhalt vonWie füge ich mit JDBC ein Bild in die Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage