mysql表mtable中有个photo字段,格式为longbolb,里面保存了6张不同的图片,请读取并把这6张图片保存到byte[][]格式的photos中,请给出代码
时间: 2024-05-03 08:22:28 浏览: 82
以下是Java中读取MySQL表中longblob类型图片并保存到byte[][]的代码:
```java
try {
// 连接数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 构造SQL语句
String sql = "SELECT photo FROM mtable";
// 创建PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 执行查询
ResultSet rs = ps.executeQuery();
// 创建byte[][]数组
byte[][] photos = new byte[6][];
// 循环读取并保存图片
int i = 0;
while (rs.next()) {
// 读取图片数据
Blob blob = rs.getBlob("photo");
// 获取字节数组
byte[] data = blob.getBytes(1, (int) blob.length());
// 保存到数组
photos[i] = data;
i++;
}
// 关闭连接
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
```
其中,先连接数据库,然后构造SQL语句,创建PreparedStatement对象,执行查询,循环读取并保存图片,最后关闭连接。在循环中,通过rs.getBlob("photo")获取图片数据,再通过Blob.getBytes()获取字节数组,最后保存到byte[][]数组中。
阅读全文