以前一直觉得向数据库中存图片是件挺麻烦的事情,今天自己试了一下也没有想像中的那么麻烦(虽然过程中遇到好几次莫名其妙的异常,最后发现是Oracle的包的问题),得益于Hibernate可以很好的支持java.sql.Blob属性的映射
public static void main(String[] args) {
//获得Spring的上下文对象
ApplicationContext ac = new ClassPathXmlApplicationContext("/applicationContext.xml");
//存图片
PresentDao dao = (PresentDao) ac.getBean("presentDao");
FileInputStream fis = null;
try {
ADPresent p = new ADPresent();
p.setName("世博会吉祥物海宝钥匙扣");
p.setDescription("纪念物品");
p.setPrice(25.5);
p.setQtyRemain(100L);
Blob photo = null;
//将图片读进输入流
fis = new FileInputStream("D:\\1.jpg");
// 转成Blob类型
photo = Hibernate.createBlob(fis);
p.setPhoto(photo);
dao.savePresent(p);
fis.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
==============ADPresent的代码==============
private Long objectRrn;
private String name;
private String description;
private Double price;
private Long qtyRemain;
private Blob photo;
setter/getter方法
==============PresentDao的代码==============
//使用spring的依赖注入获得sessionfactory
private SessionFactory sf;
public ADPresent savePresent(ADPresent present) throws Throwable{
Session session = null;
Transaction tx = null;
try {
session = sf.openSession();
tx = session.beginTransaction();
//使用session的save方法可以持久化Blob属性
session.saveOrUpdate(present);
tx.commit();
} catch (Exception e) {
if(tx!=null)
tx.rollback();
throw e;
} finally{
session.close();
}
return present;
}
在写代码的过程中发生了几次数据库相关的异常信息,在屡次排除失败的情况下尝试更换oracle的类包(原来用的是ojdbc14.jar这个jar包,后来换成了%ORACLE_HOME%\product\10.2.0\db_1\jdbc\lib\下的ojdbc14_g.jar,可能换成其他的也行没有试过),问题竟然解决了(原来是oracle版本的问题)
分享到:
相关推荐
在给定的标题和描述中,我们主要关注的是SSH框架与MySQL数据库的结合使用。 首先,Struts2作为SSH中的表现层框架,负责处理HTTP请求并提供视图渲染。它通过Action和Result来组织业务逻辑,使用Interceptor拦截器...
之后,配置SSH框架的数据库连接参数,确保程序能正确连接到你的MySQL数据库。最后,运行程序,就可以在浏览器中访问和使用这个学生管理系统了。 这个项目对于初学者来说是一个很好的学习实例,可以帮助理解SSH框架...
SSH,全称Spring、Struts、Hibernate,是Java Web开发中的三大开源框架,它们分别负责应用的业务逻辑层(Spring)、视图展示层(Struts)以及数据持久化层(Hibernate)。这个“SSH 完整框架(包括数据库部分)”应该...
在这个基于SSH的CRM系统中,用户可以通过前端页面进行客户信息录入、查询、跟踪销售过程、制定营销策略等操作,而这些操作都由后台代码处理并调用SSH框架中的相关组件来实现。 **5. 页面和后台代码结构** 在没有...
SSH框架,全称为Struts+Hibernate+Spring,是Java Web开发中的一个流行组合,用于构建高效、可扩展的多层Web应用程序。这三个框架分别负责不同的职责,共同构成了强大的开发架构。 Struts是一个开源的MVC(Model-...
SSH框架是Java开发中常用的三大框架,分别是Struts、Spring和Hibernate。它们分别负责MVC模式中的表现层、业务层和服务层,形成了一个强大的企业级应用开发解决方案。 **Struts** 是一个开源的Web MVC框架,它提供...
SSH框架是软件开发中常用的三大组件——Struts、Spring和Hibernate的组合,它们协同工作以构建高效、可维护的Java Web应用程序。Eclipse是一个广泛使用的集成开发环境(IDE),特别适合Java开发。在这个已搭建好的...
SSH2是Java开发中常见的三层架构模式,其中Spring负责管理对象和依赖注入,Struts2处理前端请求和视图展示,Hibernate则作为持久层框架,简化了数据库操作。 1. **Spring框架**:Spring是核心的IoC(Inversion of ...
在这个"SSH框架开发JBOA办公自动化管理系统含Oracle数据库"项目中,我们可以深入探讨以下几个关键知识点: 1. **Struts2框架**:Struts2作为MVC(Model-View-Controller)架构的一部分,主要负责处理用户请求,管理...
- **工作流程**:在SSH框架中,Spring主要用来管理依赖关系,即将service注入到action,将dao注入到service,将Hibernate注入到dao。这样做的目的是实现各层之间的解耦,提高系统的灵活性和可维护性。 #### 二、...
在SSH框架中,Hibernate通常作为数据访问层,负责数据的存取。 **Spring** 是一个全面的应用上下文管理框架,提供依赖注入(DI)和面向切面编程(AOP)等功能。在SSH中,Spring负责协调Struts2和Hibernate,管理...
### SSH框架理论详解 #### 一、SSH框架概述 SSH框架指的是**Struts + Hibernate + Spring**这三种技术的组合,它们共同构成了一个强大的企业级Java Web应用开发框架。SSH框架能够帮助开发者构建出高性能、高灵活性...
在SSH框架中,Hibernate主要负责业务逻辑层的数据存取,通过Spring的管理,实现数据库操作的透明化。 3. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的实现,主要用于Web应用的表示层控制。它...
SSH框架是Java Web开发中的一个经典组合,由Spring、Struts和Hibernate三个开源项目组成。Spring提供依赖注入(DI)和面向切面编程(AOP),用于管理对象的生命周期和业务逻辑;Struts作为MVC(Model-View-...
### 基于SSH框架的教务管理系统的开发 #### 概述 本文主要探讨了基于SSH(Struts+Spring+Hibernate)框架的教务管理系统的设计与实现。该系统旨在提高学校的教学管理工作效率,实现教务管理信息化。通过采用先进的...
SSH框架是Java开发中常用的三大框架整合,包括Spring、Struts和Hibernate。这些框架分别负责不同的职责:Spring作为整体的管理容器,负责依赖注入(DI)和面向切面编程(AOP),Struts则用于控制层,处理HTTP请求并...
总结,这个学生社团管理系统是一个SSH框架的实战案例,有助于新手快速掌握SSH框架的核心技术和实际运用,同时也展示了如何在阿里云服务器上部署和运行Java Web应用,以及如何利用MySQL数据库进行数据存储。...
SSH框架,全称为Struts2、Spring和Hibernate的集成框架,是Java开发中常见的Web应用程序框架。这个压缩包"SSH框架整合jar"包含了这三个关键组件的特定版本,以确保它们可以协同工作,避免了可能的版本冲突问题。下面...
总之,SSH框架的整合涉及了Web应用的多个层面,包括视图、控制和模型。通过Struts2处理用户请求,Spring管理业务逻辑和服务,Hibernate负责数据存取,配合合适的数据库驱动,可以构建出高效、稳定的Java Web应用。...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目提供了一个包含Struts2、Spring和Hibernate简单应用实例的压缩包,帮助开发者了解和学习如何在实际项目中整合...