【问题标题】:Easiest way to convert a Blob into a byte array将 Blob 转换为字节数组的最简单方法
【发布时间】:2011-10-03 11:53:31
【问题描述】:

将 Blob 转换为字节数组的最简单方法是什么?我正在使用 MYSQL,我想将 Blob 数据类型转换为字节数组。

我正在使用java编程语言:)

【问题讨论】:

    标签: java mysql bytearray blob


    【解决方案1】:

    mySql blob 类具有以下功能:

    blob.getBytes

    像这样使用它:

    //(assuming you have a ResultSet named RS)
    Blob blob = rs.getBlob("SomeDatabaseField");
    
    int blobLength = (int) blob.length();  
    byte[] blobAsBytes = blob.getBytes(1, blobLength);
    
    //release the blob and free up memory. (since JDBC 4.0)
    blob.free();
    

    【讨论】:

    • 谢谢,实际上 blob 没有 getbytes() 方法,只有 serialblob 有 getbytes() 方法。如何为 blob 做。
    • 你在使用java.sql.Blob吗?
    • 这个方法给出了一个 Lob is closed 异常...我该怎么办?
    • @AnuShibinJosephRaj 我认为您应该在 SO 上发布一个完整的问题,并附上您的代码示例。
    • 将 blob 转换为二进制并通过 httpclient post 请求发送是否是一种好方法?
    【解决方案2】:

    最简单的方法是这样的。

    byte[] bytes = resultSet.getBytes("my_field");
    

    【讨论】:

    • 对不起,我真的不明白rs是什么。
    • @MarcoSulla:一个 JDBC ResultSet
    • 我相信这个答案只有在字段小于 1048576 字节时才有效。
    • @AJ.P:这取决于 SQL 方言。在许多方言中,没有这样的限制。
    猜你喜欢
    • 2011-10-03
    • 2014-11-23
    • 1970-01-01
    • 2012-09-16
    • 2021-11-17
    • 2012-06-06
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多