`
黑色幽默
  • 浏览: 56560 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

利用spring的jdbcTemplate处理blob、clob

阅读更多
spring定义了一个以统一的方式操作各种数据库的Lob类型数据的LobCreator(保存的时候用),同时提供了一个LobHandler为操作二进制字段和大文本字段提供统一接口访问。
举例,例子里面的t_post表中post_text字段是CLOB类型,而post_attach是BLOG类型:

String sql = " INSERT INTO t_post(post_id,user_id,post_text,post_attach)"
     + " VALUES(?,?,?,?)";
   getJdbcTemplate().execute(
     sql,
     new AbstractLobCreatingPreparedStatementCallback(
       this.lobHandler) {
      protected void setValues(PreparedStatement ps,
        LobCreator lobCreator) throws SQLException {
       ps.setInt(1, incre.nextIntValue());
       ps.setInt(2, post.getUserId());
       //存储文件流,text文本之类
        //存储图片用lobCreator.setBlobAsBinaryStream(ps, 3, inputstream,inputstream.avaliable)
       lobCreator.setClobAsAsciiStream(ps, 3, inputstream,inputstream.avaliable);
       lobCreator.setClobAsAsciiStream(ps, 4, inputstream,inputstream.avaliable);
      }
     });
}
}

读取BLOB/CLOB块,举例:

public List getAttachs(final int userId){
   String sql = "SELECT post_id,post_attach FROM t_post where user_id =? and post_attach is not null";
   return getJdbcTemplate().query(
       sql,new Object[] {userId},
       new RowMapper() {
        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
        Post post = new Post();
        int postId = rs.getInt(1);
         byte[] attach = lobHandler.getBlobAsBytes(rs, 2);
         post.setPostId(postId);
         post.setPostAttach(attach);
         return post;
        }
       });
}

Spring 让 LOB 数据操作变得简单易行 另一篇介绍
http://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/
分享到:
评论

相关推荐

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

    这篇博客主要探讨了如何使用Spring处理CLOB(Character Large Object)和BLOB(Binary Large Object)这两种大数据类型的字段。CLOB通常用于存储大文本数据,如文章、报告等,而BLOB则用于存储二进制大数据,如图片...

    spring blob相关

    使用JdbcTemplate,我们可以编写SQL查询或更新语句,并利用其方法执行它们,处理结果集。 2. **PreparedStatement**:在Spring中,通常使用PreparedStatement来插入或更新包含BLOB字段的记录。预编译的SQL语句可以...

    JdbcTemplate文件

    它可以处理各种数据类型,包括MySQL特有的BLOB和CLOB等。同时,JdbcTemplate也支持MySQL的存储过程调用,只需使用`call`方法并传入CallableStatementCreator即可。 除了基本的查询和更新,JdbcTemplate还提供了一些...

    Spring中文帮助文档

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

    简单易行:Spring中操作LOB字段案例

    在Spring框架中,LOB(Large Object)字段通常用于存储大数据,如BLOB(Binary Large Object)用于二进制数据,如图片或文档,CLOB(Character Large Object)用于字符数据,如长文本。本篇文章将深入探讨如何在...

    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 自增键的...

    Apress.Spring.Persistence – A.Running.Start.Feb.2009.pdf

    - **二进制数据处理**:探讨了Spring JDBC中处理二进制数据的方法,如BLOB和CLOB类型。 - **其他JdbcTemplate实现**:概述了除了默认的JdbcTemplate之外,还有哪些其他的实现可供选择。 ### 第三章:使用Spring与...

    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容器中创建 ...

    Spring3.x企业应用开发实战(完整版) part1

    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-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    java的SSH框架

    - **Blob,clob映射**: 对大文本或二进制数据的映射。 - **查询**: - **get,load,延迟加载**: 提供不同的获取对象的方法,支持懒加载。 - **Session的常用方法**: 包括openSession、close、save、update等。 - *...

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    DBKING使用指南

    在dbking中,所有的数据库数据只有五种数据类型,String、Number(BigDecimal)、Timestamp、Clob(String)、Blob(byte[]),经过反复测试后,我们会例出各种数据库数据类型到这五种类型的映射表,当然我们也有...

    java_学习资料

    - **Blob/clob映射**:处理大文本和二进制数据。 - **查询(get, load, 延迟加载)**:获取对象的不同方式及其特点。 - **Session的常用方法**:如`save()`、`update()`、`delete()`等。 - **对象在Hibernate中的...

    java jdbc 反射 word学习文档

    `JdbcTemplate`是Spring框架中用于简化JDBC编程的一种工具,它封装了大量的通用数据库操作。 - **模板设计模式优化DAO**: `JdbcTemplate`简化了异常处理、资源管理等操作。 - **策略设计模式优化DAO**: 通过定义...

Global site tag (gtag.js) - Google Analytics