利用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/
利用spring的jdbcTemplate处理blob、clob相关推荐
- Struts+Spring+Hibernate处理Lob(Blob,Clob)--sessionFactory中注入 org.springframework.jdbc.support.lob.Def
[转载]org.springframework.jdbc.support.lob. 转载▼ 标签: 转载 分类: spring 原文地址:org.springframework.jdbc.suppor ...
- Spring Boot + Oracle 处理Blob/Clob类型字段实例
本篇演示使用SpringBoot (JPA)如何保存和查询Oracle 数据库中的Clob/Blob 类型的字段. Clob/Blob 大对象数据 Clob/Blob 类型的字段用于保存大型的数据, ...
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...
- spring boot java app_利用spring boot创建java app
利用spring boot创建java app 背景 在使用spring框架开发的过程中,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置和复杂的bean依赖关系,特别是在使用mvc的时候各 ...
- 利用Spring AOP 更新memcached 缓存策略的实现(一)
本人参考文档:http://blog.csdn.net/ajun_studio/article/details/7343781 memcached批量删除解决方案:http://tech.ddvip. ...
- Spring 学习 day3 : AOP,Spring中JdbcTemplate的使用
1.AOP 1.1 什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能的统一维护的一种技术. ...
- 利用spring aop统一处理异常和打日志
利用spring aop统一处理异常和打日志 spring aop的概念,很早就写博客介绍了,现在在工作中真正使用. 我们很容易写出的代码 我们很容易写出带有很多try catch 和 logger. ...
- 利用SPRING管理热加载的GROOVY对象!
作者:paleXu的技术博客 来源:https://palexu.github.io/posts/spring-dynamic-load-groovy-bean?hmsr=toutiao.io& ...
- Spring的jdbcTemplate 与原始jdbc 整合c3p0的DBUtils 及Hibernate 对比 Spring配置文件生成约束的菜单方法...
以User为操作对象 package com.swift.jdbc;public class User {private Long user_id; private String user_code; ...
最新文章
- Java-Java I/O流解读之java.io.PrintStream java.io.PrintWriter
- centos 6 防火墙开启端口无效问题
- Oracle 安装完怎么用,oracle 11g 安装完怎么用
- boost::python::register_exception_translator相关的测试程序
- 如何在asterisk中限制呼叫路数?
- burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包
- 多线程之CountDownLatch和CyclicBarrier的区别和用法
- linux 格式化u盘_【Ventoy】一个U盘,启动多个系统
- 干货分享丨从MPG 线程模型,探讨Go语言的并发程序
- 职场精英修炼必学工具:75页自我管理的29个工具,系统方法论
- vscode 文件夹中查找_真香!使用 VSCode 进行远程开发调试
- Reacr-Native Android 环境搭建 、运行项目(二)Window
- while循环python的范围_为什么Python中的range()循环比使用while循环更快?
- powerDesigner修改mysql建表语句
- Python基础--01数据类型-标识符命名规范
- 如何应用计算机键盘截图,计算机屏幕截图的键盘快捷键是哪个键?在计算机上截图的方法...
- 为了寻找美,我决定对美女图片进行图像边缘化处理
- 动态规划-切木头问题(代码实现)
- 网吧组建及相关技术(无盘技术;VLAN;PacketTrace)
- Fermat theorem (stationary points)