Java で blob フィールドを読み取る方法は?

JavaのBlobフィールドを読み取るには、java.sql.Blobインターフェースのメソッドを使用します。以下は簡単な例です:

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.sql.*;

public class BlobReader {

public static void main(String[] args) {

String url = “jdbc:mysql://localhost:3306/mydatabase”;

String username = “root”;

String password = “password”;

try {

Connection conn = DriverManager.getConnection(url, username, password);

String sql = “SELECT blob_column FROM my_table WHERE id = ?”;

PreparedStatement statement = conn.prepareStatement(sql);

statement.setInt(1, 1);

ResultSet result = statement.executeQuery();

if (result.next()) {

Blob blob = result.getBlob(“blob_column”);

InputStream inputStream = blob.getBinaryStream();

FileOutputStream outputStream = new FileOutputStream(“output_file.txt”);

int bytesRead;

byte[] buffer = new byte[4096];

while ((bytesRead = inputStream.read(buffer)) != -1) {

outputStream.write(buffer, 0, bytesRead);

}

inputStream.close();

outputStream.close();

}

conn.close();

} catch (SQLException | IOException e) {

e.printStackTrace();

}

}

}


上記の例では、JDBCを使用してデータベースに接続し、SELECT文を実行してBlobフィールドを取得します。その後、BlobオブジェクトのgetBinaryStream()メソッドを使用して入力ストリームを取得し、それをファイル出力ストリームに書き込みます。注意:実際の使用時には、`url`、`username`、`password`、`sql`、および出力ファイルのパスを置換する必要があります。また、適切に例外処理や接続のクローズなども行う必要があります。

bannerAds