一,读取图片转为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中。
}

Oracle中存储图片的类型为BLOB类型,Java中如何将其读取并转为字符串?的更多相关文章

  1. MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】

    用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等 ...

  2. Java类型相互转换byte[]类型,blob类型

    在我们的程序开发当中,经常会用到java.sql.Blob.byte[].InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们 ...

  3. MYSQL数据库中,常见的数据类型有哪些?它们与java中的数据类型如何对应

    A.常规 映射 integer 或者 int int 或者 java.lang.Integer INTEGER 4 字节 long long Long BIGINT 8 字节 short short  ...

  4. Java基础学习(五)-- Java中常用的工具类、枚举、Java中的单例模式之详解

    Java中的常用类 1.Math : 位于java.lang包中 (1)Math.PI:返回一个最接近圆周率的 (2)Math.abs(-10):返回一个数的绝对值 (3)Math.cbrt(27): ...

  5. java中需要关注的3大方面内容/Java中创建对象的几种方法:

    1)垃圾回收 2)内存管理 3)性能优化 Java中创建对象的几种方法: 1)使用new关键字,创建相应的对象 2)通过Class下面的new Instance创建相应的对象 3)使用I/O流读取相应 ...

  6. javascript中对两个对象进行排序 和 java中的两个对象排序

    javascript中的对象数组排序 一 定义一个对象数组 var text = [{"name":"张","age":24},{" ...

  7. SQLserver中存储图片

    两种方式1.存放图片路径2.转换成2进制流(不过这样的话将很占用数据库空间)存路径的方式就很简单了,下面着重给出转换成2进制流的存入以及读取方法.存入:string FilePath="&q ...

  8. 如何使用JS脚本从HTML中分离图片标签与文本,替换文本中指定的内容并加粗(原创)

    var html='ddfsdfsdfdsd dfsdfsdffds<img _src="http://localhost:8490/60E86EA7-FE7B-44BF-8270-4 ...

  9. 【java】处理时间字段 在数据库查询的时候只想要年月日,不想要时分秒 ,java中设置时间类型为年月日,java中设置Date中的时分秒为00.00.000

    JDK8 中最简单的处理方式: @Test public void dateTest(){ Date now = new Date(); System.out.println(now); // jav ...

随机推荐

  1. RabbitMQ环境安装及入门

    1. 说明 在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方, ...

  2. Android stdio 报错 error invoking main method

    打开Android stdio失败 报错:error invoking main method 想想前一天做了什么事?? 昨天把企图把Android Stdio文件包移盘,但是中途截止了,也就是说移动 ...

  3. List集合1

    一.List接口介绍 List继承自Collection接口,是单列集合的一个重要分支,习惯性的会将实现List接口的对象称为List集合 二.List接口3个特点 1.有序(有序不是顺序,有序指的是 ...

  4. shell及编程实例

    1.shell简介 1) 概念--命令解释器 2) 常见shell bash linux标准shell sh 早期shell,较简单 csh ksh tcsh unix  shell vi  /etc ...

  5. Verilog强制激励语法

    Verilog强制激励语法 1. 在一个过程块中,可以用两种不同的方式对信号变量或表达式进行连续赋值. 过程连续赋值往往是不可以综合的,通常用在测试模块中. 两种方式都有各自配套的命令来停止赋值过程. ...

  6. ceph存储集群测试方案

    --测试目的 测试ceph集群的读写性能,根据测试数据了解整个ceph集群的性能情况. --测试环境 1.8节点ceph集群环境,1台虚拟机(cpu 8核,内存8G),8k的块大小,时长2小时 2.8 ...

  7. 用IDEA时,类/方法提示"class/method **** is never used"

    https://segmentfault.com/q/1010000005996275?_ea=978306 清理下缓存试下.在 File -> Invalidate Caches 下,会重启 ...

  8. swap 用指针交换两个整型数值

  9. 【leetcode】429. N-ary Tree Level Order Traversal

    problem 429. N-ary Tree Level Order Traversal solution1:Iteration /* // Definition for a Node. class ...

  10. Flask+uwsgi+virtualenv环境配置

    Linux系统版本: SLES12sp3 (阿里云) 1. 首先需要安装python-devel,否则后续安装会报错! rpm -qa|grep python-base 结果: python-base ...