zoukankan      html  css  js  c++  java
  • Oracle中存储图片的类型为BLOB类型,Java中如何将其读取并转为字符串?

    一,读取图片转为String类型: 需要使用Sun公司提供的Base64工具

    String str = ((Map) list1.get(0)).get("EINVOICEFILE").toString(); //通过查询取出EINVOICEFILE的属性值,EINVOICEFILE在数据库中以(1:cat.png)这种varchar类型存储(公司平台需要可忽略)。


    String[] filemap = str.split(":");
    String id = filemap[0];  //分割字符串,拿到冒号前面的id,即 1


    String sql_qr = "select content from hebfs.pt994 where id =?";
    List list2 = DataBaseHelper.queryForList(sql_qr, new Object[] {id });  //content就是存储图片的blob数据,查询出放到list中。

    String strBase64 = null;
    byte[] bytes = (byte[])(((Map) list2.get(0)).get("CONTENT"));  //这里先从list中取出图片,然后转换成字节数组。

    strBase64 = new BASE64Encoder().encode(bytes);  //最后调用base64的encode方法,把字节数组传进去就能得到需要的String数据。
    System.out.println(strBase64);

    二,如果数据库中的blob字段存储的是XML,读取方法如下:

    String sql = " select EINVOICEXML from T_FSEITEMPLATE t where t.id = ? ";
    List xml = DataBaseHelper.queryForList(sql, new Object[] { StringUtil.nullToEmpty(p.get("TEMPID"))});  //执行sql,结果存储于List中。


    List resultlist = new ArrayList();
    for (int i = 0; i <xml.size() ; i++) {     //循环遍历xml集合
    Map map = new HashMap();
    map = (Map) xml.get(i);
    byte[] bytes = (byte[]) map.get("EINVOICEXML");  //把每个值转为字节数组
    String s = new String(bytes,"GBk");   //再转为String类型
    map.put("EINVOICEXML",s);   //使用Map封装。
    resultlist.add(map);   //将封装好的Map存储到list中。
    }

  • 相关阅读:
    能直接调用析构函数,不能直接调用构造函数
    第二章、IP协议详解
    第一章、TCP协议详解
    STL
    容器
    7、jQuery选择器及绑定方法
    6、JQuery语法
    5、DOM 定时器 和 JQuery 选择器
    4、DOM之正则表达式
    3、JS函数与DOM事件
  • 原文地址:https://www.cnblogs.com/lovefaner/p/9709139.html
Copyright © 2011-2022 走看看