在Java應(yīng)用程序中,有時需要將二進(jìn)制數(shù)據(jù)存儲到 MySQL 數(shù)據(jù)庫中,可以使用 BLOB 類型的字段來實(shí)現(xiàn)。下面介紹如何使用 Java 將 BLOB 數(shù)據(jù)存儲到 MySQL 數(shù)據(jù)庫中。
1. 創(chuàng)建 BLOB 字段
CREATE TABLE my_table (
id INT(11) PRIMARY KEY AUTO_INCREMENT,
blob_field BLOB
);
這里創(chuàng)建了一個名為 my_table 的數(shù)據(jù)表,其中包含一個自增的 id 字段和一個名為 blob_field 的 BLOB 字段。
2. 將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為 byte 數(shù)組
File file = new File("path/to/file");
byte[] data = Files.readAllBytes(file.toPath());
通過讀取文件方式,可以將文件數(shù)據(jù)轉(zhuǎn)換成 byte 數(shù)組以備后續(xù)使用。
3. 連接數(shù)據(jù)庫
String url = "jdbc:mysql://localhost:3306/my_database";
String user = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
這里連接了一個名為 my_database 的 MySQL 數(shù)據(jù)庫。
4. 將 byte 數(shù)組存儲到 BLOB 字段中
PreparedStatement ps = conn.prepareStatement("INSERT INTO my_table (blob_field) VALUES (?)");
ps.setBytes(1, data);
int rowsAffected = ps.executeUpdate();
這里使用 PreparedStatement 將轉(zhuǎn)換后的 byte 數(shù)組插入到 my_table 表的 blob_field 字段中,最后更新影響的行數(shù)。
5. 關(guān)閉連接
conn.close();
完成數(shù)據(jù)存儲后,需要關(guān)閉數(shù)據(jù)庫連接。