mysql数据库表中有一列是blob类型数据,在后端对象中使用byte[]接收,现在想把这一列数据单独查出来,然后组成一个byte[]的集合,List
public class Obj{
private Byte[] blob;
//get set 方法
//List<Obj> list;
}
用个对象包装一下就行
在 Java 中,可以使用 List 来创建一个存储字节数组的集合。这样就可以避免使用基本数据类型 byte 引发的问题。
MyBatis 的映射文件也应该使用 List 来表示返回类型。
代码中你可以这样去查询:
List<Byte> bytes = myBatisMapper.selectBytes();
对应的mapper.xml 中的查询标签:
<select id="selectBytes" resultType="java.util.List">
SELECT column_name FROM table_name;
</select>
如果你是使用JDBC去查询的话
List<Byte> bytes = new ArrayList<Byte>();
try(Connection connection = DriverManager.getConnection(url, username, password)) {
try(PreparedStatement statement = connection.prepareStatement("SELECT column_name FROM table_name")) {
try(ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
byte[] bytesFromDB = resultSet.getBytes("column_name");
for(byte b: bytesFromDB) {
bytes.add(b);
}
}
}
}
}
虽然这样的查询方式会使用更多的内存, 但这样就可以避免 byte[] 在返回类型上的问题了。