Home > Database > Mysql Tutorial > body text

How to insert image into database using JDBC?

WBOY
Release: 2023-08-29 14:05:02
forward
807 people have browsed it

如何使用 JDBC 将图像插入数据库?

PreparedStatementThe setBinaryStream() method of the interface accepts an integer representing the parameter index and an InputStream object, and sets the parameter to the given InputStream object. You can use this method whenever you need to send very large binary values.

SQL database provides a data type called Blob (Binary Large Object) in which you can store large binary data, such as images.

Using JDBC to store images

If you need to use a JDBC program to store images in the database, create a table of Blob data type as follows:

CREATE TABLE Tutorial(Name VARCHAR(255), Type INT NOT NULL, Logo BLOB);
Copy after login

Now , use JDBC to connect to the database and prepare a PreparedStatement Insert the value into the table created above:

String query = "INSERT INTO Tutorial(Name, Type, Logo) VALUES (?, ?, ?)";
PreparedStatement pstmt = con.prepareStatement(query);
Copy after login

Use the setter method of the PreparedStatement interface to set the value of the placeholder, and use setBinaryStream( ) method sets the value of the Blob data type.

FileInputStream fin = new FileInputStream("javafx_logo.jpg");
pstmt.setBinaryStream(3, fin);
Copy after login

Example

The following example demonstrates how to insert an image into a MySQL database using a JDBC program. Here, we create a table containing a Blob data type, insert values ​​into the table (a BinaryStream object of type Blob), and retrieve the table's contents.

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();
      }
   }
}
Copy after login

Output

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
Copy after login

Note: You can only store and retrieve images of type .gif or .jpeg or .png using JDBC programs.

The above is the detailed content of How to insert image into database using JDBC?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template