`

spring clob和blob数据类型

 
阅读更多
操作步骤:
1.配置spring支持获取本地化jdbc操作对象
<!-- nativeJdbcExtractor 和 oracleLobHandler Bean 都设置为 lazy-init="true",这是因为 -->
<!-- nativeJdbcExtractor 需要通过运行期的反射机制获取底层的 JDBC 对象, -->
<!-- 所以需要避免在 Spring 容器启动时就实例化这两个Bean。 -->
<bean id="nativeJdbcExtractor"class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor"
lazy-init="true" />
 
2.提供oracleLobHandler
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
    <property name="nativeJdbcExtractor" ref="nativeJdbcExtractor"></property>
</bean>
 
3.写code,继承jdbc模板,使用execute方法内部类AbstractLobCreatingPreparedStatementCallback
    private LobHandler lobHandler;
 
/**
 * @return the lobHandler
 */
    public LobHandler getLobHandler() {
    return lobHandler;
    }
 
/**
 * @param lobHandler the lobHandler to set
 */
public void setLobHandler(LobHandler lobHandler) {
this.lobHandler = lobHandler;
}
 
 
public void getInsertPutImage(String txtUrl,String imgUrl) throws IOException {
 
//写文本
final File clobIn = new File(txtUrl);
final InputStream clobIs = new FileInputStream(clobIn);
final InputStreamReader clobReader = new InputStreamReader(clobIs);
 
//写图片
final File blobIn = new File(imgUrl);
final InputStream blobIs = new FileInputStream(blobIn);
 
getJdbcTemplate().execute(insertOracleSql, new         AbstractLobCreatingPreparedStatementCallback(this.lobHandler) {
@Override
protected void setValues(PreparedStatement ps, LobCreator lobCreator)
throws SQLException, DataAccessException {
ps.setLong(1, 1l);
lobCreator.setClobAsCharacterStream(ps, 2, clobReader, (int)clobIn.length());
lobCreator.setBlobAsBinaryStream(ps, 3, blobIs, (int)blobIn.length());
}
});
clobReader.close();
blobIs.close();
}
 
 
 

 

AbstractLobCreatingPreparedStatementCallback 参数需要提供一个lobHander对象,使用时需要提供set方法。

 

分享到:
评论

相关推荐

    Mybatis 处理 CLOB、BLOB 类型数据

    Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis ...通过使用 MyBatis 处理 CLOB 和 BLOB 类型数据,可以方便地存储和读取大字段类型的数据,提高应用程序的性能和可扩展性。

    java中(注解符)处理Clob(blob)类型

    Clob(Character Large OBject)类型和 Blob(Binary Large OBject)类型是数据库中两种常用的大规模数据类型。Clob 类型用于存储大规模的字符数据,而 Blob 类型用于存储大规模的二进制数据。在 Java 中,处理 Clob...

    spring2通过jdbc的方式读取、更新数据库的clob或者blob类型的数据

    在处理CLOB和BLOB时,JdbcTemplate提供了方法如`update()`和`queryForXXX()`,能够方便地插入、更新和查询包含这些特殊数据类型的数据。 1. **CLOB和BLOB的基本概念**: - CLOB:存储大量字符数据,如XML文档、长...

    Hibernate对Blob,Clob的操作

    Blob和Clob是Java中用于处理大数据类型的数据对象,Blob用于存储二进制大对象,如图片、音频或视频,而Clob则用于存储字符大对象,如长文本。本文将详细介绍如何在Hibernate中操作Blob和Clob字段,实现数据的存储与...

    spring blob相关

    BLOB是一种用于存储大量二进制数据的数据类型,它可以容纳从几KB到4GB不等的数据。在Oracle中,BFILE和CLOB也是用来存储大对象的类型,但BFILE存储的是文件系统中的外部文件,而CLOB用于存储非二进制的大型文本数据...

    spring oracle blob

    为了能够通过Spring框架操作数据库中的BLOB数据,需要对`sqlMapConfig.xml`进行适当的配置。以下是一个配置示例: ```xml &lt;!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" ...

    spring+hibernate 解决大字段(clob)

    在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large Object)。本文将详细介绍如何在Spring与Hibernate...

    spring+hibernate操作oracle的clob字段

    在Spring配置文件中,你需要创建一个`SessionFactory` bean,同时指定一个`lobHandler`属性,用于处理CLOB和BLOB类型的数据。这确保了Spring和Hibernate能够正确地与Oracle数据库交互处理大对象。 ```xml ...

    使用Jdbc4操作Blob,Clob

    当涉及到处理大型对象(LOBs)如Blobs(Binary Large Objects)和Clobs(Character Large Objects)时,JDBC4提供了一种更为便捷的方式来操作这些数据类型。这篇博客“使用Jdbc4操作Blob,Clob”将深入讲解如何利用...

    图片存数据库 clob类型

    CLOB(Character Large Object)是数据库中用于存储大量文本数据的一种数据类型。虽然它主要用于存储文本,但在某些场景下也可以用来存储经过编码后的图片数据。当图片数据量不是特别大时,可以考虑使用CLOB来存储...

    spring1.2+hibernate2对大字段的处理实例

    1. **Blob/Clob类型**:对于大文本或二进制数据,可以使用数据库的Blob(Binary Large Object)和Clob(Character Large Object)类型。Hibernate2支持将Java的`java.sql.Blob`和`java.sql.Clob`对象映射到数据库的...

    spring1.2+hibernate3对大字段的处理实例,供大家学习与交流,可直接运行

    在处理大字段时,Hibernate提供了Blob和Clob类型的支持,用于存储大对象,如文本、图片等。 针对大字段的处理,通常有以下几种策略: 1. **字段分片**:如果一个字段过大,可以将其拆分为多个较小的字段存储,降低...

    Spring+Hibernate处理Oracle lob字段(一)

    在Oracle数据库中,LOB字段主要有BLOB(Binary Large Object)和CLOB(Character Large Object)两种类型,分别用于存储二进制和字符数据。处理这些字段时,我们需要配置Hibernate的实体类和映射文件。 在实体类中...

    Spring jar 包.zip

    它支持复杂的数据类型,如BLOB(二进制大对象)和CLOB(字符大对象),并提供了高级的索引策略,如位图索引和函数索引。Oracle还提供了丰富的安全特性和强大的备份恢复机制。 整合这些组件意味着创建一个包含Spring...

    Spring.3.x企业应用开发实战(完整版).part2

    11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式读取Lob数据 11.3.5 以流数据方式读取Lob数据 11.4 自增键和行集 11.4.1 自增键的...

    Spring中文帮助文档

    处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 ...

    ssh(structs,spring,hibernate)框架中的上传下载

    可以确定的一点是:BlobByteArrayType不可能逾越Blob天生的操作方式,原来是BlobByteArrayType数据类型本身具体数据访问的功能,它通过LobHandler将两次数据访问的动作隐藏起来,使Blob字段的操作在表现上和其他一般...

    Spring API

    处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 ...

Global site tag (gtag.js) - Google Analytics