public void deployProcessDefinition(byte[] processDef, byte[] processImage) {
//使用hibernate的工具把byte[]-->Blob
Blob blobProcessImage_ = Hibernate.createBlob(processImage);
//通过byte【】数字创建ProcessDefinition
ProcessDefinition def =
ProcessDefinition.parseXmlInputStream(
new ByteArrayInputStream(processDef));
//将流程定义部署都jbpm
getContext().deployProcessDefinition(def);
Session session = getSession();
//到oa
Workflow workflow = (Workflow)getSession()
.createQuery("select w from cn.blueram.oa.model.Workflow w where w.name = ?")
.setParameter(0, def.getName())
.uniqueResult();
if(workflow == null) {
workflow = new Workflow();
workflow.setName(def.getName());
workflow.setProcessDef(processDef);
workflow.setProcessImage(Hibernate.createBlob(new byte[1]));
//数据库没有,添加新的存储到数据库
session.save(workflow);
session.flush();
session.refresh(workflow,LockMode.UPGRADE);
SerializableBlob blobProcessImage = (SerializableBlob)workflow.getProcessImage();
java.sql.Blob blo = (java.sql.Blob)blobProcessImage.getWrappedBlob();
oracle.sql.BLOB obj = (oracle.sql.BLOB)blo;
try {
OutputStream outs = obj.getBinaryOutputStream();
outs.write(processImage,0,processImage.length);
outs.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
session.save(workflow);
return;
}
分享到:
相关推荐
1. 配置Hibernate环境:通过配置文件定义数据库连接信息和映射信息。 2. 实现数据持久化类:创建与数据库表相对应的Java类,定义其属性和持久化行为。 3. 数据操作:通过Session对象执行持久化操作,如保存、更新和...
综上所述,使用Hibernate和JDBC读取Oracle数据库中的Blob数据涉及多个步骤,包括实体类的设计、数据库操作和文件流的处理。理解这些知识点对于处理大对象存储至关重要。在实际项目中,根据需求和性能考虑,选择合适...
在Oracle数据库中,BLOB类型的字段具有特殊的处理方式,尤其在使用JDBC(Java Database Connectivity)和Hibernate框架时,需要特别注意其写入过程。以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入...
如果使用Hibernate,操作Blob会更加简洁,因为Hibernate提供了对Blob对象的直接映射。你需要在实体类中定义一个Blob类型的属性,并在映射文件中配置它。然后,你可以直接将文件流写入这个属性,Hibernate会自动处理...
- 可能会提到一些开发工具,如Eclipse、IntelliJ IDEA中如何配置和调试与Clob和Blob相关的代码,或者使用数据库管理工具如SQL Developer进行数据查看和操作。 7. **示例代码**: - 包含在`bigstring_oracle_src`...
2. 配置Hibernate的JDBC连接,使用支持Clob和Blob高效操作的Oracle JDBC驱动。 3. 利用Hibernate提供的API进行增删改查操作,无需手动处理Clob和Blob的具体存储细节。 在实际开发中,了解并掌握这些知识点可以帮助...
Hibernate是一个强大的Java持久化框架,它允许开发者将对象模型与关系数据库进行映射,从而简化了数据库操作。在处理多数据库支持时,Hibernate提供了一些策略和技巧来确保应用程序能够在不同类型的数据库之间灵活...
此外,ORM框架如Hibernate或MyBatis可以进一步简化数据库操作,提供对象-关系映射,使开发者能更专注于业务逻辑。 总的来说,Java连接SQLServer和Oracle数据库涉及JDBC基础、数据库驱动管理、SQL语句编写和数据库...
- 在处理 Blob 数据的过程中可能会遇到各种异常情况,如文件读取错误或数据库连接问题,因此需要进行适当的异常处理。 5. **安全性考虑**: - 上传的 Blob 数据可能包含恶意内容,应采取措施进行安全检查,防止...
通过使用Hibernate,我们可以避免编写大量的SQL语句,而是用面向对象的方式来操作数据库,提高了开发效率。 【二】Oracle数据库存储图片 Oracle数据库支持BLOB(Binary Large Object)类型,用于存储大容量的二进制...
Oracle 和 WebLogic 服务器在处理 ...综上所述,Oracle 和 WebLogic 在处理 BLOB 数据时涉及到数据库操作、JDBC 交互、前端数据处理和安全性等多个方面,需要开发者具备全面的技能和经验才能有效地管理和优化这些操作。
在Java的持久化框架Hibernate中,Blob类型常...理解这些概念和实践方法,可以帮助我们有效地管理和操作大数据类型的持久化对象。在实际项目中,根据具体需求和性能要求进行适当优化,可以提升应用的效率和用户体验。
在本示例中,我们将探讨如何使用Oracle数据库、Hibernate ORM框架以及Uploadify插件处理Blob类型的大数据,如图片或文件上传。Blob(Binary Large Object)是数据库中用于存储二进制大对象的类型,常用于存储图片、...
接下来,我们将深入探讨在Hibernate中操作Oracle和MySQL数据库中的Blob字段: 1. **配置Hibernate**:在项目中集成Hibernate,你需要创建一个`hibernate.cfg.xml`配置文件,配置数据库连接信息,包括数据库URL、...
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。
- hibernate.cfg.xml:Hibernate的配置文件,定义了数据库连接信息和实体类的映射。 - log4j.properties:日志配置文件,用于记录应用程序的运行日志。 通过学习和分析这个项目,开发者可以深入了解如何在实际环境...
而Hibernate则是一个对象关系映射(ORM)框架,它简化了Java与关系数据库之间的交互,通过对象模型与SQL语句的映射,使得开发人员无需直接编写SQL即可操作数据库。 在Oracle数据库中,LOB字段主要有BLOB(Binary ...