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中。
}
最新文章
- Android搜索功能的案例,本地保存搜索历史记录......
- 解剖SQLSERVER 第十一篇 对SQLSERVER的多个版本进行自动化测试(译)
- Java面向对象之接口
- IOS网络第一天-01基本的HTTP请求
- 防止特殊html字符的问题(xxs攻击)方法
- Vue.2.0.5-事件处理器
- 阿里云Mysql重置密码
- COJ 0970 WZJ的数据结构(负三十)树分治
- NET Core 介绍
- centos 6.8 配置 Redis3.2.5
- Mybatis源码分析(原创)
- 老司机教你用原生JDK 撸一个 MVC 框架!!!
- Web Application Vulnerablities
- [20181226]简单探究cluster table.txt
- 参数在一个线程中各个函数之间互相传递的问题(ThreadLocal)
- 使用 IntraWeb (29) - 基本控件之 TIWAutherList、TIWAutherINI、TIWAutherEvent
- 求大神帮解答calendar日期插件的问题
- wget 下载命令
- 【系列教程1】Gradle入门系列二:第一个Java项目
- 【基础知识】【1】CDN
热门文章
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map
- Android : 跟我学Binder --- (5) C++实现
- Python简介(一)
- Python编程高级特性--迭代器
- Jsの练习-数组常用方法 -splice()
- python自学第14天 类
- 如何搭建并使用便携式 4G/LTE 伪基站研究移动安全
- vscode 完全支持zeng code的写法
- c#抓屏功能在DPI缩放后,截到的图片不完整的问题
- 关于使用JPA中@Query注解传递表名/视图名参数的问题