如何在Java中将java.sql.blob转换为base64编码的字符串

切板机

我试图从存储为blob的mysql数据库中获取图像。到目前为止,我尝试了三种或多或少的不同方法,但似乎没有一种方法可以带我到任何地方。我一定在这里犯了一些愚蠢的错误。

    try {
          // create a java mysql database connection
          String myDriver = "org.gjt.mm.mysql.Driver";
          Class.forName(myDriver);
          Connection conn = DriverManager.getConnection(mySettings.dbConnect, mySettings.dbUser, mySettings.dbPass);
          PreparedStatement stmt = conn.prepareStatement("select up.userid, up.name, la.languages, up.photo, up.dob, up.edited from userprofile up join languages la on up.languages_id = la.languages_id where up.userid = ?");

          stmt.setString(1, userid);
          ResultSet rs = stmt.executeQuery();
          while (rs.next()) {
              // version 1
              InputStream photois = rs.getBinaryStream("photo");
              int ch;
              String str = new String();
              while ((ch = photois.read()) != -1) {
                  // here the exception occures when i InputStream.read().
                  // both Exception.getMessage() and Exception.getCause()
                  // of the caught exception yield null
                  str += (char)ch;
              }
              byte[] bdata=str.getBytes();
              byte[] img64 = Base64.encode(bdata);
              String photo64 = new String(img64);

              // version 2
              Blob b = rs.getBlob("photo");
              byte[] ba = b.getBytes(1, b.length()); 
              // b.length() throws exception, no message, no cause
              byte[] img64 = Base64.encode(ba);
              String photo64 = new String(img64);

              // version 3
              InputStream photois = rs.getBinaryStream("photo");
              byte[] buf = IOUtils.toByteArray(photois); 
              // this throws an exception, message and cause both null as above 
              String photo64 = DatatypeConverter.printBase64Binary(buf);

          }
          conn.close();
    }
    catch (Exception e) {
          System.err.println("Got an exception! (reading userprofile from db)");
          System.err.println(e.getMessage());
          System.err.println(e.getCause());
    }

在所有情况下,控制台都会为我提供以下信息:
系统错误

米哈尔

getMessage()和getCause()中具有null的异常是NullPointerException。

ResultSet#getBinaryStream()的JavaDoc声明它为包含SQL NULL的列返回null。即使ResultSet#getBlob()的JavaDoc省略了相同的说明,但在我看来,测试行在blob列中不包含任何数据,即blob在数据库中为NULL。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中将java.sql.blob转换为base64编码的字符串

来自分类Dev

如何在Java中将Base64编码的字符串转换为UUID

来自分类Dev

如何在Java中将Image转换为base64字符串?

来自分类Dev

如何在Spark SQL Java中将CSV类型字符串转换为数据帧?

来自分类Dev

在Javascript中将Blob同步转换为base64字符串

来自分类Dev

在Javascript中将Blob同步转换为base64字符串

来自分类Dev

如何将.wav文件转换为base64编码的字符串?

来自分类Dev

如何将 Base64 编码的字符串直接转换为 SecureString

来自分类Dev

如何在Java中将SQL查询转换为Lambda?

来自分类Dev

如何在Kotlin Android中将base64字符串转换为图像

来自分类Dev

如何在 Ionic 中将 base64 字符串转换为 JPG 或 Png

来自分类Dev

在UltraEdit或类似的Windows编辑器中将PNG转换为Base64编码的字符串

来自分类Dev

在Java中将Base64转换为二进制字符串

来自分类Dev

如何将MP3文件转换为Base64编码的字符串?

来自分类Dev

如何从bash将base64 utf-8编码的字符串转换为二进制文件?

来自分类Dev

如何将MP3文件转换为Base64编码的字符串?

来自分类Dev

将 JSON Base64 字符串转换为 Java 中的字符串

来自分类Dev

在MSBuild中将字符串编码为Base64

来自分类Dev

如何在Java中将HTML编码的字符串转换为Unicode

来自分类Dev

如何在Android上将Base64字符串转换为Bitmap?

来自分类Dev

如何在Qt中将Jpeg Base64字符串转换为jpeg图像

来自分类Dev

如何在Java中将char []转换为字符串?

来自分类Dev

如何在Java中将字符串转换为身份

来自分类Dev

如何在由 Java 代码创建的 SQL 脚本文件中将 Java byte[] 转换为 MySQL BLOB

来自分类Dev

在Java中将base64字符串转换为服务器端的图像

来自分类常见问题

如何在Swift中将字符串编码为Base64?

来自分类Dev

在Swift中将十六进制字符串转换为Base64

来自分类Dev

无法在Android中将位图转换为完美的Base64字符串?

来自分类Dev

在Elixir中将Base64字符串转换为映射

Related 相关文章

  1. 1

    如何在Java中将java.sql.blob转换为base64编码的字符串

  2. 2

    如何在Java中将Base64编码的字符串转换为UUID

  3. 3

    如何在Java中将Image转换为base64字符串?

  4. 4

    如何在Spark SQL Java中将CSV类型字符串转换为数据帧?

  5. 5

    在Javascript中将Blob同步转换为base64字符串

  6. 6

    在Javascript中将Blob同步转换为base64字符串

  7. 7

    如何将.wav文件转换为base64编码的字符串?

  8. 8

    如何将 Base64 编码的字符串直接转换为 SecureString

  9. 9

    如何在Java中将SQL查询转换为Lambda?

  10. 10

    如何在Kotlin Android中将base64字符串转换为图像

  11. 11

    如何在 Ionic 中将 base64 字符串转换为 JPG 或 Png

  12. 12

    在UltraEdit或类似的Windows编辑器中将PNG转换为Base64编码的字符串

  13. 13

    在Java中将Base64转换为二进制字符串

  14. 14

    如何将MP3文件转换为Base64编码的字符串?

  15. 15

    如何从bash将base64 utf-8编码的字符串转换为二进制文件?

  16. 16

    如何将MP3文件转换为Base64编码的字符串?

  17. 17

    将 JSON Base64 字符串转换为 Java 中的字符串

  18. 18

    在MSBuild中将字符串编码为Base64

  19. 19

    如何在Java中将HTML编码的字符串转换为Unicode

  20. 20

    如何在Android上将Base64字符串转换为Bitmap?

  21. 21

    如何在Qt中将Jpeg Base64字符串转换为jpeg图像

  22. 22

    如何在Java中将char []转换为字符串?

  23. 23

    如何在Java中将字符串转换为身份

  24. 24

    如何在由 Java 代码创建的 SQL 脚本文件中将 Java byte[] 转换为 MySQL BLOB

  25. 25

    在Java中将base64字符串转换为服务器端的图像

  26. 26

    如何在Swift中将字符串编码为Base64?

  27. 27

    在Swift中将十六进制字符串转换为Base64

  28. 28

    无法在Android中将位图转换为完美的Base64字符串?

  29. 29

    在Elixir中将Base64字符串转换为映射

热门标签

归档