Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

Blob 데이터 유형에 대한 값을 테이블에 삽입하기 위한 JDBC 예제를 작성하시겠습니까?

<시간/>

다음 설명이 포함된 MyTable이라는 테이블이 데이터베이스에 이미 있다고 가정합니다.

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name  | varchar(255) | YES  |     | NULL    |       |
| image | blob         | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

JDBC 프로그램을 사용하여 blob 데이터 유형에 int 값을 삽입해야 하는 경우 바이너리 스트림 데이터를 설정하는 메소드를 사용해야 합니다. PreparedStatement 인터페이스는 테이블에 이미지를 삽입하기 위해 다음과 같은 메소드를 제공합니다.

무효 setBinaryStream(int parameterIndex, InputStream x) 메소드는 주어진 인덱스의 매개변수에 대한 값으로 주어진 입력 스트림의 데이터(파일 끝까지)를 설정합니다.

이 방법의 다른 변형은

  • 무효 setBinaryStream(int parameterIndex, InputStream x, int 길이)

  • 무효 setBinaryStream(int parameterIndex, InputStream x, 긴 길이)

무효 setBlob(int parameterIndex, Blob x) 메소드는 주어진 인덱스의 매개변수에 대한 값으로 주어진 blob 객체를 설정합니다.

이 방법의 다른 변형은

  • 무효 setBlob(int parameterIndex, InputStream 입력 스트림)

  • 무효 setBlob(int parameterIndex, InputStream inputStream, 긴 길이)

이 방법 중 하나를 사용하여 Blob 데이터 유형에 값을 설정할 수 있습니다.

예시

다음 예제에서는 setBinaryStream() 메서드를 사용하여 값을 Blob 데이터 유형으로 설정합니다.

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class IndertingValueForBlob {
   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......");

      //Inserting values
      String query = "INSERT INTO MyTable(Name,image) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "sample_image");
      FileInputStream fin = new FileInputStream("E:\\images\\cat.jpg");
      pstmt.setBinaryStream(2, fin);
      pstmt.execute();
      System.out.println("Record inserted .....");
   }
}

출력

Connection established......
Record inserted ......

MySQL 작업대를 사용하여 레코드의 blob 값을 보려고 하면 아래와 같이 삽입된 이미지를 볼 수 있습니다.

Blob 데이터 유형에 대한 값을 테이블에 삽입하기 위한 JDBC 예제를 작성하시겠습니까?