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中。
}
Oracle中存储图片的类型为BLOB类型,Java中如何将其读取并转为字符串?的更多相关文章
- MySql数据库类型bit等与JAVA中的对应类型【布尔类型怎么存】
用char(1):可以表示字符或者数字,但是不能直接计算同列的值.存储消耗1个字节 用tinyint:只能表示数字,可以直接计算,存储消耗2个字节 用bit: 只能表示0或1,不能计算,存储消耗小于等 ...
- Java类型相互转换byte[]类型,blob类型
在我们的程序开发当中,经常会用到java.sql.Blob.byte[].InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们 ...
- MYSQL数据库中,常见的数据类型有哪些?它们与java中的数据类型如何对应
A.常规 映射 integer 或者 int int 或者 java.lang.Integer INTEGER 4 字节 long long Long BIGINT 8 字节 short short ...
- Java基础学习(五)-- Java中常用的工具类、枚举、Java中的单例模式之详解
Java中的常用类 1.Math : 位于java.lang包中 (1)Math.PI:返回一个最接近圆周率的 (2)Math.abs(-10):返回一个数的绝对值 (3)Math.cbrt(27): ...
- java中需要关注的3大方面内容/Java中创建对象的几种方法:
1)垃圾回收 2)内存管理 3)性能优化 Java中创建对象的几种方法: 1)使用new关键字,创建相应的对象 2)通过Class下面的new Instance创建相应的对象 3)使用I/O流读取相应 ...
- javascript中对两个对象进行排序 和 java中的两个对象排序
javascript中的对象数组排序 一 定义一个对象数组 var text = [{"name":"张","age":24},{" ...
- SQLserver中存储图片
两种方式1.存放图片路径2.转换成2进制流(不过这样的话将很占用数据库空间)存路径的方式就很简单了,下面着重给出转换成2进制流的存入以及读取方法.存入:string FilePath="&q ...
- 如何使用JS脚本从HTML中分离图片标签与文本,替换文本中指定的内容并加粗(原创)
var html='ddfsdfsdfdsd dfsdfsdffds<img _src="http://localhost:8490/60E86EA7-FE7B-44BF-8270-4 ...
- 【java】处理时间字段 在数据库查询的时候只想要年月日,不想要时分秒 ,java中设置时间类型为年月日,java中设置Date中的时分秒为00.00.000
JDK8 中最简单的处理方式: @Test public void dateTest(){ Date now = new Date(); System.out.println(now); // jav ...
随机推荐
- spring boot多模块项目找不到类
项目结构 mapper依赖pojo, service依赖mapper和pojo portal依赖pojo和service. 全都是maven模块 <groupId>com.haitian& ...
- 一天一点Zynq(1)xilinx-arm-linux交叉编译链 安装总结以及资源更新
结束了对xilinx-arm-linux交叉编译链安装后,总结一下整个过程,方便后来的研究者们,少走点弯路. 关于xilinx-arm-linux交叉编译链的安装,网上一搜一大把,可是有的资料中的资源 ...
- python_day4
昨日回顾: 1. 整型 python2 有长整型 python3 没有长整型 2.布尔值 转换 3.字符串详解 下 ...
- scikit-learn实现简单的决策树
#encoding=utf-8import numpy as npimport pandas as pd def main(): #Pre-processing from sklearn.datase ...
- RabbitMQ 的安装----windows环境
一.RabbitMQ在windows下的安装 RabbitMQ 它依赖于Erlang,在window上安装时,需要先安装Erlang. 首先确定你的window电脑是32位还是64位,然后下载对应版本 ...
- wpf-x命名空间-Markup Extension(标记扩展)
1.x:type 用于前端类型声明 与C# 代码 Type类似 2.x:Null 代表Null 某些时候需要显示的为一些值设置为空 前端为 x:Null C# 中 为 Null 3.x:ar ...
- 自动化测试-16.selenium数据的分离之Excel的使用
前言 在自动化测试中,单纯写得测试脚本,数据往往是写死的,这样会给程序的可扩展性降低,以及成本的增加,将程序和数据进行剥离有利于提高代码的执行效率,提升工作量,因此将数据写入到Excel文件中,前置条 ...
- python3+requests:接口自动化测试(二)
转载请注明出处:https://www.cnblogs.com/shapeL/p/9188495.html 前言:上篇文章python3+requests+unittest:接口自动化测试(一):ht ...
- 神州数码OSPF基于区域认证(简单、MD5认证)
实验要求:掌握基于区域的简单认证及MD5认证 拓扑如下 简单认证 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface l0 进入端口 i ...
- Beta周王者荣耀交流协会第四次Scrum会议
1.立会照片 成员王超,高远博,冉华,王磊,王玉玲,任思佳,袁玥全部到齐. master:任思佳 2.时间跨度: 2017年11月13日 11:40 — 12:10 ,总计30分钟. 3.地点: 一食 ...