mysql表mtable中有个photo字段,格式为longbolb,在其中id=1的记录中,photo里面保存了6张不同的图片,请读取并把这6张图片保存到byte[][]格式的photos中,请给出代码
时间: 2024-05-09 08:20:27 浏览: 87
以下是Java代码示例:
```java
import java.sql.*;
public class ReadPhotosFromMysql {
public static void main(String[] args) {
final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
final String DB_URL = "jdbc:mysql://localhost:3306/test";
final String USER = "root";
final String PASS = "123456";
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
byte[][] photos = new byte[6][];
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
String sql = "SELECT photo FROM mtable WHERE id=1";
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
int i = 0;
while (rs.next()) {
photos[i] = rs.getBytes("photo");
i++;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
// 打印每张图片的长度
for (byte[] photo : photos) {
System.out.println(photo.length);
}
}
}
```
这里使用了JDBC连接到MySQL数据库,执行了一条SELECT语句,将id为1的记录中的photo字段读取出来,并保存到了byte[][]数组中。注意,这里假设每张图片的大小不一样,因此使用了一个二维数组来保存。最后,打印出每张图片的长度,以验证是否正确读取。
阅读全文