一天接到一个项目,要从数据库里取出图片,ssh好久没用了,熟悉了一下然后开始开工。发现图片生成的时候总是失败。检查了一下,发现这个image字段被定义成了string类型。
最初的想法是要将这个string转换成InputStream,试了试发现写入图片的都是字符串。
然后与考虑将InputStream转成BufferedImage。还是没有成功。
饭后突然发现自己老是纠结在String上,hibernate的类型应该可以直接定义成image的。查询了一下原来是Blob类型
在jtds.jar中对这个类型有支持。抓狂!原来这么简单
public void getHtmlPicture(Blob img,String fileName) {FileOutputStream file;
try {
System.out.println("要生成的文件的名称:"+fileName);
//System.out.println(fileName);
InputStream inputStream=null;
try {
inputStream = img.getBinaryStream();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
file = new FileOutputStream(new File(fileName));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(file);
BufferedImage image=ImageIO.read(inputStream);
//System.out.println(image);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(image); //从图片缓冲中读取
param.setQuality(50f, true);
encoder.encode(image, param); //存盘
file.close();
inputStream.close();
System.out.println("文件生成结束");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
重新运行,正常生成图片。
这个地方还是点想法,我现在想一次把所有的图片都读出来放到硬盘上。这样不用每次都这样从数据库取图片。这样的做法是否正确。还有什么更好的方案吗?
myeclipse的反向生成是挺方便的,看来有时候还会有制作点麻烦啊
分享到:
相关推荐
在本文中,我们详细介绍了如何使用 JSP 将图片存入数据库。我们首先使用 SmartUpload 库上传图片,然后将图片的字节数组存入数据库。最后,我们使用 JSP 生成一个 img 标签来显示图片。 知识点: * 使用 ...
DataGridView 中数据存入数据库方法 在 .NET Framework 中,DataGridView 控件是数据显示和编辑的重要组件。然而,很多开发者在使用 DataGridView 时,经常遇到数据存储和更新的问题。下面,我们将讨论如何将 ...
接着,我们通过预编译的 SQL 语句将数据插入到数据库中。为了提高效率,建议使用批处理操作,即一次插入多条数据。 在实际应用中,`getConnection()` 方法应包含连接 MySQL 数据库的逻辑,可能包括配置 JDBC URL、...
然而,直接存储二进制大数据(如图片)在数据库中可能会影响性能,因为数据库设计主要优化于处理结构化数据,而不是大量非结构化的二进制内容。一种常见的解决方案是将图片以文件形式存储在服务器的文件系统中,然后...
本示例主要涉及的是如何将图片通过BASE64编码加密后存入数据库的Blob类型字段,并能从数据库中取出这些数据再还原成原始图片。以下是相关知识点的详细说明: 1. **BASE64编码**:BASE64是一种用于将二进制数据转换...
在存储图片后,你可能需要从数据库中检索这些数据并重新生成图片文件。这可以通过执行查询并处理返回的二进制数据来完成: ```csharp // 查询图片数据 SqlCommand command = new SqlCommand("SELECT ImageColumn ...
3. 图库管理系统:在图库管理系统中,我们可以使用JAVA生成图片并存入数据库的sql语句实现方法将图片数据存储到数据库中,以便于后续的图片管理和检索。 JAVA生成图片并存入数据库的sql语句实现方法是一种高效、...
本示例将详细讲解如何实现一个简单的文件上传功能,将图片上传至服务器,并将图片的URL保存到数据库中。 首先,我们需要在Spring Boot项目中引入所需的依赖。对于文件上传,Spring Boot本身提供了`spring-boot-...
标题 "PB-数据库保存图片并在Datawindow中显示" 涉及到的是使用PowerBuilder(PB)这个开发工具,将图片数据存储在数据库中,并在DataWindow控件中进行显示的技术。下面,我们将深入探讨这一主题。 1. **Power...
在Java编程领域,将Excel数据读取并存储到MySQL数据库是一项常见的任务,特别是在数据分析、报表生成或系统集成等场景中。下面将详细讲解这个过程涉及的主要知识点。 首先,我们需要了解如何使用Java处理Excel文件...
同时生成了缩略图和正常图片的base64值,缩略图用于页面进行显示,正常图片进行后续打开查看。测试了安卓和ios的微信端,一切正常。之前使用webuploader,ios的微信没法使用,只能重新做。 另外由于缓存资源的原因...
Java生成数据库字典表MySQL Doc-Generator是一款实用的工具,旨在帮助开发者将MySQL数据库中的表结构信息导出为Word文档,方便进行数据库设计文档的整理和分享。这个工具简化了手动编写数据库字典表的过程,提高了...
这个过程包括接收用户上传的文件、处理文件、保存文件到服务器、记录文件信息到数据库,以及后续从数据库中检索信息并展示图片。下面我们将详细探讨这一过程。 首先,我们从`action.php`和`index.php`这两个文件名...
管理员后台管理模块包括心理测试表管理和用户管理模块。心里测表管理模块有包括添加心理测试表...本系统自动生成由管理员录入测试表,系统自动将测试题存入数据库中,用户进行心理测试,完成测试即可查看各项得分情况。
该软件非常不错,当前支持支持正则表达式,批量提取文本,可以将HTML等文件中指定内容存入数据库、HTML、文本文件,存入数据库的意思是将提取的文本内容直接导入进数据库中。 批量文本提取器功能: 提供多种查找、...
### 在ASP.NET中实现文件在数据库中的存取 #### 概述 随着互联网技术的发展,文件存储成为了一个重要的话题。通常,文件可以被存储在服务器的文件系统中或数据库内。尽管存储在文件系统中相对简单,但在管理及安全...
综上所述,登录注册存入数据库是一个涉及用户界面设计、数据库结构规划、数据安全保护以及后台管理等多个环节的复杂过程。在实际开发中,我们需要确保用户数据的安全性、操作的便捷性和系统的稳定性。
本文将详细探讨如何使用C#语言在Web环境下将Word文件存入数据库并进行读取。 首先,我们需要了解C#是如何操作Word文件的。在C#中,可以借助Microsoft.Office.Interop.Word库来与Word应用程序进行交互。这个库提供了...
在Oracle数据库中,当我们遇到需要存储超过4000个字符的文本数据时,使用CLOB(Character Large Object)类型便显得尤为重要。下面将详细介绍如何在C#环境下通过Oracle.NET接口实现将长于4000字符的字符串转化为CLOB...
标题中的“用到digester项目,直接解析存入数据库”指的是使用Apache Digester库来解析XML文件,并将解析后的数据直接存储到数据库中。Apache Digester是一个Java库,它允许开发者通过规则配置来关联XML文档的元素与...