博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 数据库处理Clob/Blob大对象
阅读量:6678 次
发布时间:2019-06-25

本文共 1548 字,大约阅读时间需要 5 分钟。

hot3.png

#概述

使用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();

执行步骤:

    1. 获取 lobHandler 可以是 DefaultLobHandler
    1. 使用方法 setClobAsCharacterStream 设置CLOB内容
    1. 使用方法 setBlobAsBinaryStream 设置BLOB内容

其他方法

setBlobAsBinaryStream setClobAsAsciiStream setClobAsCharacterStream

转载于:https://my.oschina.net/u/1983041/blog/745196

你可能感兴趣的文章
[PYTHON] 核心编程笔记(12.Python模块)
查看>>
windows下MD5-SHA1校验
查看>>
Linux学习记录-2015-08-20--常用命令1
查看>>
Android工程引用另外一个工程的正确/错误方法
查看>>
Testlink使用介绍
查看>>
【动态规划】0-1背包问题原理和实现
查看>>
c3p0详细配置
查看>>
jsfl导出库里面的PNG图片
查看>>
PostgreSQL的MVCC vs InnoDB的MVCC
查看>>
COMP9321/19T1/resources/22490
查看>>
使用JSON实现分页
查看>>
如何优雅地使用Markdown (Sublime 3 + MarkdownEditing+OmniMarkupPreviewer)
查看>>
HTML+5+从入门到精通
查看>>
安全退出调用多个Activity的Application
查看>>
pdf怎么编辑连续页码
查看>>
非openresty方式安装Nginx + Lua + Redis 环境
查看>>
记2012-2013年一路的Windows Phone历程
查看>>
本博客搬家辣
查看>>
sysstat安装
查看>>
修改root密码
查看>>