哎,今天辛苦了一天,就是为了使用hibernate实现clob字段的插入,我使用的环境是hibernate 3.0和class12的开发包,当执行到
。。。。。
ssSession.save(cMail);
ssSession.flush();
szTypeID = cMail.getTypeId();
ssSession.refresh(cMail, LockMode.UPGRADE);
SerializableClob clob=(SerializableClob)cMail.getContent();
oracle.sql.CLOB tmpClob = (oracle.sql.CLOB) clob.getWrappedClob();
java.io.Writer pw = tmpClob.getCharacterOutputStream();
pw.write(strContent);
pw.flush();
pw.close();
ssSession.flush();
tx.commit();
时候总报出类型转化错误,但是我看实际取出来就是tmpClob oracle.sql.CLOB但是就是造型错误,真的要人命啊,在网上找了好久没有看到这个解决方法,有人说换最新的oracle驱动就可以了,但是我们现在工程已经做的差不多了,更新驱动可能会有很多问题,没有办法,只能找可有什么好点的方案,原来问题是
在我的netbeans bulid下面lib 中有class12.jar tomcat中的lib中也有class12.jar,两个重复的jar会造成造型错误,真的很郁闷,把工程中的依赖包删除就可以了,呵呵,希望以后朋友遇到这样的问题不要象我这样又重复了一天的工作,真的很不爽
分享到:
相关推荐
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...
Oracle的Clob数据类型...此外,对于非常大的Clob数据,可能需要分段读取和写入,以避免一次性处理大量数据带来的性能问题。理解并熟练掌握Clob在Hibernate中的处理方式,对于开发高效且稳定的数据库应用程序至关重要。
在写入时,先将字符串转换为Clob对象,再由Hibernate处理;读取时,将Clob内容转化为字符串。这种方式适用于数据量不是特别大的情况,因为所有数据都需要在内存中进行转换。 3. **直接使用Clob类型**: Hibernate...
6. **示例代码**:在Hibernate中,读取和写入CLOB的代码可能如下: ```java // 读取 Clob clob = entity.getLongText(); String content = clob.getSubString(1, (int) clob.length()); // 写入 Session ...
本文将详细介绍如何在Hibernate中操作Blob和Clob字段,实现数据的存储与读取。 首先,我们需要在Hibernate映射文件(.hbm.xml)中定义Blob和Clob字段。对于Blob,可以这样声明: ```xml ``` 这里的`name`属性...
- 分块读写:对于大数据,可以使用`lobCreator.createClob()`创建可写Clob,然后分块写入,读取时也按块读取,减少内存占用。 - 使用`lobLocator`:Oracle支持`LOB LOCATOR`,允许只在需要时才加载数据,提高效率...
这是因为Oracle的`CLOB`需要先创建空间,然后再写入数据。 - 插入示例: ```java conn.setAutoCommit(false); String sql = "insert into file(name,file_content) values('jack',EMPTY_CLOB())"; ...
在Java的持久化框架Hibernate中,处理大数据类型如Clob(Character Large Object)和Blob(Binary Large Object)是常见的需求,这些数据类型通常用于存储大量的文本或二进制数据。Oracle数据库提供了支持Clob和Blob...
在 Java 中,处理 Clob 和 Blob 类型需要使用特殊的注解配置来确保正确地读取和写入数据。 一、Clob 类型的注解配置 在 Java 中,处理 Clob 类型需要使用 @Lob 注解来指定该字段为大规模字符数据类型。@Lob 注解...
7. **写入Clob数据**:将字符数据流或字符串设置到Clob对象,然后在SQL语句中使用。例如,`PreparedStatement.setClob(int index, Reader reader)`。 8. **事务管理**:处理Blob和Clob数据通常涉及大量I/O操作,...
通常,要解决超过4000字节的数据,一种做法是将数据写入文件,xml或plain file都可以,数据表中保存文件的路径即可。这种做法不必处理clob(Character Large Object), blob(Binary Large Object)等格式的字段类型,但...
以上就是使用Java将图片写入数据库(使用Blob类型)并读出来的基本流程。在实际应用中,你可能需要处理异常、事务管理、性能优化等方面的问题。同时,为了提高效率,可以考虑将数据分块读写,特别是处理大文件时。...
2. **代码实现**:在将数据写入CLOB字段时,可能直接使用了String对象,而没有将其转换为InputStream或Reader。例如,应使用`setClob(int, Reader)`或`setClob(int, InputStream, long)`方法,而不是`setClob(int, ...
写入CLOB数据主要通过Java.sql.Clob接口实现。下面是一个基本的写入CLOB数据的示例代码: ```java Connection con = ConnectionFactory.getConnection(); con.setAutoCommit(false); Statement st = con....
`DiskFileItemFactory`用于设置内存缓冲区大小,超过这个大小后,文件将被写入临时文件。 ```java public void uploadImg(HttpServletRequest request, HttpServletResponse response) throws ServletException, ...
@Temporal用于日期时间类型的映射,@Lob用于大对象(BLOB或CLOB)的映射。 3. **关系映射**:@OneToOne、@OneToMany、@ManyToOne、@ManyToMany注解分别用于一对一、一对多、多对一和多对多的关系映射,它们可以通过...
2. **实现UserType接口**:为每个动态属性创建一个UserType实现,覆盖`nullSafeGet`和`nullSafeSet`等方法,处理数据的读取和写入。 3. **注册UserType**:在Hibernate的配置文件中,或者在SessionFactory创建时,...
需要指定的是Spring 1.2.5提供了两套Hibernate的支持包,其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,...
通过`PreparedStatement`中的`setObject()`、`setBinaryStream()`和`setCharacterStream()`等方法,可以方便地读取和写入LOB数据。例如: ```java PreparedStatement pstmt = connection.prepareStatement("INSERT ...