`
- 浏览:
57758 次
- 性别:
- 来自:
南京
-
关于使用Hibernate向数据库中存取java对象
1、向数据库中存入java对象
//建立一个字节数组的输出流
ByteArrayOutputStream byteOut=new ByteArrayOutputStream();
//使用对象输出流将字节数组流包装起来
ObjectOutputStream outObj=new ObjectOutputStream(byteOut);
//使用对象输出流的writeObject方法将query对象写入到字节数组输出流中,query对象作为tss的一个属性存在
outObj.writeObject(query) ;
//使用toByteArray()方法获得一个字节数组
final byte[] objbytes=byteOut.toByteArray();
Session session = this.getSession();
//写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入所以必须先要创建一个空的BLOB对象
tss.setQuery(Hibernate.createBlob(new byte[1]));//创建空的Blob对象
Serializable s=session.save(tss);
session.flush();//通过此方法强制执行插入操作
//通过refresh方法,强制Hibernate执行select for update
session.refresh(tss, LockMode.UPGRADE);
//向Blob中写入实际的内容
SerializableBlob sb = (SerializableBlob)tss.getQuery();
java.sql.Blob wrapBlob = sb.getWrappedBlob();
oracle.sql.BLOB blob=(oracle.sql.BLOB)wrapBlob;
OutputStream out = blob.getBinaryOutputStream();
BufferedOutputStream bos = new BufferedOutputStream(out);
bos.write(objbytes, 0, objbytes.length);
bos.flush();
bos.close();
out.close();
byteOut.close();
outObj.close();
2、从数据库中取出query对象
SerializableBlob sb = (SerializableBlob)tss.getQuery();
java.sql.Blob wrapBlob = sb.getWrappedBlob();
BLOB inblob = (BLOB)wrapBlob;
InputStream is = inblob.getBinaryStream();
BufferedInputStream bis = new BufferedInputStream(is);
byte[] byte11 = new byte[inblob.getBufferSize()];
if(-1!=bis.read(byte11, 0, byte11.length));
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(byte11));
Query bq = (BooleanQuery)ois.readObject();
ois.close();
bis.close();
is.close();
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
将Struts2与Hibernate结合进行Web应用开发,可以充分利用Struts2在页面数据展示和逻辑控制方面的优势,同时使用Hibernate进行数据持久化。在实际操作中,可以通过Hibernate实现Oracle数据库中BLOB数据的存储和删除...
5. **编写主程序**:在`Main.java`中,使用Hibernate API进行数据库操作。 - 创建SessionFactory - 打开Session - 开始Transaction - 插入、查询、更新或删除数据 - 提交Transaction **七、运行程序** 编译并...
标题中的“利用Middlegen Hibernate3生成hbm.xml配置和java类”指的是使用Middlegen工具来自动化创建Hibernate3框架所需...理解如何使用Middlegen对于任何使用Hibernate进行数据库操作的Java开发者来说都是十分重要的。
POJO类是Java中简单、无特殊约束的普通类,它们不依赖于任何框架或库。在Hibernate中,POJO类用于表示数据库中的实体,每个类对应一个表,类的属性对应表的字段。 2. **Hibernate 3.0简介**: Hibernate 3.0是...
**Hibernate入门项目** 在本文中,我们将探讨如何搭建Hibernate环境,进行配置,并实现对数据库的简单存取。...继续深入学习,你将掌握更复杂的映射、查询和事务管理技巧,从而在实际项目中更加高效地使用Hibernate。
Hibernate的核心理念是“Let Java objects hibernate in the relational database”,即让Java对象能够在关系数据库中“冬眠”,这意味着它能够将Java对象的实例与数据库中的记录进行映射,从而简化数据存取的过程。...
Hibernate 3.2是一款强大的Java持久化框架,它简化了数据库与Java对象之间的交互,使得开发者无需编写大量的SQL代码即可实现数据的存取。在 Hibernate 3.2 中,一个非常实用的功能是反向工程(Reverse Engineering)...
Hibernate框架则是Java对象与数据库表之间的桥梁,它将数据操作封装在POJO(Plain Old Java Object)类中,通过ORM(Object-Relational Mapping)技术,实现了对象与SQL的解耦。在新闻发布的系统中,每个新闻实体...
2. **定义实体类**:根据数据库表结构创建Java类,并使用Hibernate注解进行映射。 3. **配置Hibernate**:配置`persistence.xml`文件,指定实体类和数据源。 4. **编写DAO层**:定义数据访问对象(DAO),实现对...
4. **整合到项目**:将生成的Java源代码和映射文件添加到项目中,然后就可以在Hibernate框架下直接使用这些对象进行数据库操作了。 5. **优化和维护**:在项目开发过程中,如果数据库结构发生变化,只需重新运行...
Eclipse中配置和使用Hibernate框架是Java开发中常见的数据库持久化解决方案。本文将通过详细的步骤介绍Eclipse中配置和使用Hibernate框架,并提供一个简单的示例实现。 Hibernate简介 Hibernate是一个开放源代码的...
【标题】"Hibernate开发实战讲解(源代码)Java源码" 涉及的主要知识点是Hibernate,这是一个在Java开发中广泛使用的对象关系映射(ORM)框架。它允许开发者使用面向对象的编程方式来操作数据库,极大地提高了开发效率...
【hibernate存取汉字小程序】是一个典型的Java开发项目,主要使用了Eclipse IDE、Hibernate3 ORM框架以及Oracle数据库来处理中文字符的问题。在实际的软件开发中,尤其是在与数据库交互时,处理中文字符可能会遇到...
总的来说,“达梦Hibernate方言2.0至4.0”是一个帮助Java开发者在使用Hibernate处理达梦数据库时,能够充分利用Hibernate的高级特性并保持代码的简洁性和可维护性的工具。通过理解方言的作用以及如何在项目中正确...
3. 异步操作:通过使用Hibernate的异步API,可以在后台线程中执行数据库操作,不阻塞主线程。 4. 事件监听:可以注册监听器来响应特定的ORM事件,如对象的保存、更新或删除。 在“Hibernate中文文档 HTML格式”中,...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了Java应用中的数据存取工作。本压缩包包含了与Hibernate 5相关的jar包,这些jar包是构建和运行基于...
Hibernate 提供了一种在Java应用程序中持久化对象的方式,它通过映射Java类到数据库表,将复杂的SQL语句和事务管理自动化,大大简化了数据存取的工作。Hibernate支持JDBC,可以与任何兼容的Java EE或Java SE环境配合...
Hibernate通过映射XML文件或注解将Java类和数据库表关联起来,使得对象可以直接存取到数据库中。 在Oracle数据库中,函数是一种自定义的可重用代码单元,可以接受参数并返回结果。当我们需要在Java应用中调用这些...