Spring 数据库处理Clob/Blob大对象
来源:互联网 发布:清理软件残留 编辑:程序博客网 时间:2024/05/20 06:50
概述
使用Spring的时候需求上难免说需要存储一下几种类型:
- 文本
- 图片
- 二进制
处理对象
Spring 支持通过LobCreator/LobHandler
进行处理大对象
- BLOB
- byte[] — getBlobAsBytes and setBlobAsBytes
- InputStream — getBlobAsBinaryStream and setBlobAsBinaryStream
- CLOB
- String — getClobAsString and setClobAsString
- InputStream — getClobAsAsciiStream and setClobAsAsciiStream
- Reader — getClobAsCharacterStream and setClobAsCharacterStream
入口
看到方法名就知道,在调用前会被执行一遍,刚好看看这个对象的实现,只有
AbstractLobCreatingPreparedStatementCallback
,接下来看看源码,看看有没有例子。
就是我想要的
使用例子
final File blobIn = new File("spring2004.jpg");final InputStream blobIs = new FileInputStream(blobIn);final File clobIn = new File("large.txt");final InputStream clobIs = new FileInputStream(clobIn);final InputStreamReader clobReader = new InputStreamReader(clobIs);jdbcTemplate.execute( "INSERT INTO lob_table (id, a_clob, a_blob) VALUES (?, ?, ?)", //new DefaultLobHandler() or new OracleLobHandler() new AbstractLobCreatingPreparedStatementCallback(lobHandler) { protected void setValues(PreparedStatement ps, LobCreator lobCreator) throws SQLException { ps.setLong(1, 1L); lobCreator.setClobAsCharacterStream(ps, 2, clobReader, (int)clobIn.length()); lobCreator.setBlobAsBinaryStream(ps, 3, blobIs, (int)blobIn.length()); } });blobIs.close();clobReader.close();
执行步骤:
- 获取 lobHandler 可以是 DefaultLobHandler
- 使用方法 setClobAsCharacterStream 设置CLOB内容
- 使用方法 setBlobAsBinaryStream 设置BLOB内容
其他方法
setBlobAsBinaryStream
setClobAsAsciiStream
setClobAsCharacterStream
0 0
- Spring 数据库处理Clob/Blob大对象
- java处理Blob、Clob大对象
- Java处理大对象Clob、Blob
- java处理Blob、Clob大对象
- Java处理大对象Clob、Blob
- Blob对象 或者clob对象 java spring c3p0处理
- oracle中的大对象BLOB,CLOB,BFILE
- 利用spring的jdbcTemplate处理blob、clob
- Struts+Spring+Hibernate处理Lob(Blob,Clob)
- Struts+Spring+Hibernate处理Lob(Blob,Clob)
- spring hibernate 处理blob与clob类型
- Spring 方式处理 Clob、Blob 大字段
- hibernate+spring处理BLOB,CLOB字段
- Spring+Hibernate中处理Oracle的大字段(clob二进制\blob大字符串)
- .NET中处理ORACLE大对象(CLOB,BLOB,BFILE)的开发
- JAVA处理Clob大对象
- java数据库编程--处理大对象数据(Blob类)
- 处理lob(blob, clob)
- go后台和web编程
- MySQL基本操作示例
- 手动打包.a静态库
- ADT在eclipse中重装时的问题--Cannot complete the install because of a conflicting dependency
- 学习《Python基础教程(第二版)》笔记10--抽象3(练习)
- Spring 数据库处理Clob/Blob大对象
- 第七周项目1-点类-一般函数
- Bmob 后端云——史上最简单的登录
- scala学习
- 《程序员必读好书》
- 第七周项目1-成员函数,友元函数,一般函数有区别
- java面试题之 ((NULL)null).haha();
- qsort函数用法
- 看看国外的十三道 JavaScript 题,你能全部做对吗?