今天要做个oracle中多clob类型字段操作的东西,到网上找了一下,参考很多。这里总结下:
1、 插入clob字段
private LobHandler lobHandler = new DefaultLobHandler();;
CommonsDbcpNativeJdbcExtractor nativeJdbcExtractor = = new CommonsDbcpNativeJdbcExtractor();
String sql = "insert into gg (test1,colb1) values ('',?)";
final String str = "" //Clob的值
OracleLobHandler handler = new OracleLobHandler();
handler.setNativeJdbcExtractor(this.nativeJdbcExtractor);
this.lobHandler = (LobHandler) handler;
jdbcTemplate.execute(sql, new AbstractLobCreatingPreparedStatementCallback(this.lobHandler){
protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException,
DataAccessException
{
lobCreator.setClobAsString(ps, 1 , str ); //设置详细的CLOB字段的内容
}
}
2、 修改clob字段
public void modifyXML(String sql,final String xml){
CommonsDbcpNativeJdbcExtractor nativeJdbcExtractor = new CommonsDbcpNativeJdbcExtractor();
final OracleLobHandler handler = new OracleLobHandler();
handler.setNativeJdbcExtractor(nativeJdbcExtractor);
RmProjectHelper.getCommonBsInstance().doUpdate(sql, new PreparedStatementSetter(){
public void setValues(PreparedStatement ps) throws SQLException {
handler.getLobCreator().setClobAsString(ps, 1, xml);
}
});
}
3、 取数据
String sql = "select clob1 from gg where id= ?"
jdbcTemplate.query(sql ,
new Object[] {new Integer(1 )},
new AbstractLobStreamingResultSetExtractor() {
protected void streamData(ResultSet rs) throws SQLException, IOException, DataAccessException {
lobHandler.getClobAsCharacterStream(rs, 1 ); //得到Clob,需要自己处理
}
});
或者:
public List getPublicArticle(String sql){
List articleList = RmProjectHelper.getCommonBsInstance().doQuery(sql,new RowMapper() {
public Object mapRow(ResultSet rs, int arg1) throws SQLException {
ResultSet r = rs;
String[] articleArray = new String[] { rs.getString("ID"),
ClobToString(rs.getClob("DATA_XML")),
rs.getString("PUBLISH_STATUS"),
rs.getString("TAGBUNDLE_ID"),
rs.getString("MARK_TYPE"),
rs.getString("COLUMN_NAME"),
rs.getString("LAST_OPERATOR"),
rs.getString("LAST_OPERATE_TIME")
};
return articleArray;
}
});
return articleList;
}
取出clob类型后需要自己转换成String:
public String ClobToString(java.sql.Clob clob){
String reString = "";
Reader is;
StringBuffer sb = new StringBuffer();
try {
is = clob.getCharacterStream();
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
reString = sb.toString();
return reString;
}
分享到:
相关推荐
在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。
Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis ...通过使用 MyBatis 处理 CLOB 和 BLOB 类型数据,可以方便地存储和读取大字段类型的数据,提高应用程序的性能和可扩展性。
一个完整的工程,主要功能为:spring+hbernate对clob、blob字段的处理 包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等功能源码、所用到的lib包 数据环境为:oracle 10G 开发:Mycelipse5.1...
本文将详细介绍如何在Spring与Hibernate框架结合的情况下,有效地处理Oracle 10g数据库中的CLOB字段。 #### 一、环境配置 为了确保项目能够顺利运行,首先需要搭建好开发环境。本示例中使用的环境配置如下: 1. *...
这里需要注意的是,`Clob` 类型在 Java 中表示为 `java.sql.Clob`,而在 Oracle 中则使用 `oracle.sql.CLOB`。 #### 3. 存储 CLOB 数据 接下来介绍如何通过 Hibernate 将 CLOB 数据保存到 Oracle 数据库中。 **...
在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...
根据提供的标题、描述以及部分代码内容,我们可以整理出关于如何在Spring框架中处理Oracle数据库中的BLOB类型数据的相关知识点。 ### 一、BLOB类型简介 BLOB(Binary Large Object)是二进制大对象的缩写,通常...
在Spring框架中操作Oracle数据库中的BLOB字段,我们需要了解一些关键概念和步骤。 首先,理解BLOB类型。BLOB是一种用于存储大量二进制数据的数据类型,它可以容纳从几KB到4GB不等的数据。在Oracle中,BFILE和CLOB也...
总结来说,"spring1.2+hibernate3对大字段的处理实例"是一个宝贵的教育资源,它涵盖了Spring和Hibernate在处理大字段时的关键技术,以及如何在Eclipse环境中实现这些技术。通过对这个实例的学习和研究,开发者能够...
在处理大数据字段时,通常涉及到的是文本、图片或者其他大型二进制数据,这些数据不适合直接存储在数据库的普通字段中,因为这可能会导致性能下降,甚至可能超出数据库字段的限制。在Spring1.2和Hibernate2的环境下...
6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...
BlobByteArrayType使用从sessionFactory获取的Lob操作句柄lobHandler将byte[]的数据保存到Blob数据库字段中。这样,我们就再没有必要通过硬编码的方式,先insert然后再update来完成Blob类型数据的持久化,这个原来难...
6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...
我们必须从第一个 DB 的 CLOB 字段中提取一些 XML,通过多个线程使用给定的 XSL 对其进行转换,然后将转换后的 XML 插入到第二个 DB 中。 如果您从 IDE 运行应用程序,请使用以下参数: 主类:org.springframework....
- 在Spring或`hibernate.cfg.xml`配置文件中,可以使用宏定义或者条件注解来根据数据库类型加载不同的映射文件。这样,不同的数据库环境只需配置相应的连接参数,而无需修改核心的配置文件。 4. **大字段处理** -...
在本示例中,我们将探讨如何使用Oracle数据库、Hibernate ORM框架以及Uploadify插件处理Blob类型的大数据,如图片或文件上传。Blob(Binary Large Object)是数据库中用于存储二进制大对象的类型,常用于存储图片、...
大数据字段如CLOB或BLOB的映射需要特别处理。字段延迟加载是JPA的一个特性,用于提高性能,只在需要时加载相关数据,通过@Lob和基本的懒加载策略实现。 **7. 使用JPA加载_更新_删除对象** JPA提供了加载(find, ...
文中提及的CLOB(Character Large Object)是一种数据库字段类型,它可以存储大量文本数据。数据库技术在管理会议信息、用户数据等方面起到了核心作用。 17. 编程语言和脚本 诸如VBScript、PHP和Perl等编程语言和...
- **大字段处理**:确保创建的表中包含CLOB和BLOB类型字段。 - **并发控制**:在升级过程中,需要对并发操作进行适当的控制,避免因高并发导致的问题。 - **资源监控**:在整个升级过程中,持续监控资源使用情况,...