没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
用来保存到oracle中其中Oracle中的表如下
create table cbh(name varchar2(20) primary key not null,contexts blob);
其中用到了及个Utile 解释:
JdbcUtile 是用来关闭ResultSet ,Statement , Connection 资源。
ConnectionFactory这个类是用获得数据库连接的。
其中BlobService中有2个方法分别是addFile(String fileName,InputStream is)和
restoreFile(Stringfilename,OutputStream os)
分别介绍如下:
//把上传的文件的保存到数据库中:filename上传的文件名,is是用Struts的FormFile来获得一个输入流。
public void addFile(String fileName,InputStream is) throws SQLException
{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try
{
con = ConnectionFactory.getConnection();
//事务管理
con.setAutoCommit(false);
create table cbh(name varchar2(20) primary key not null,contexts blob);
其中用到了及个Utile 解释:
JdbcUtile 是用来关闭ResultSet ,Statement , Connection 资源。
ConnectionFactory这个类是用获得数据库连接的。
其中BlobService中有2个方法分别是addFile(String fileName,InputStream is)和
restoreFile(Stringfilename,OutputStream os)
分别介绍如下:
//把上传的文件的保存到数据库中:filename上传的文件名,is是用Struts的FormFile来获得一个输入流。
public void addFile(String fileName,InputStream is) throws SQLException
{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try
{
con = ConnectionFactory.getConnection();
//事务管理
con.setAutoCommit(false);
//先插入一个空的字段
String sql = "insert into cbh(filename, contexts)";
sql += " VALUES(?, empty_blob())";
ps = con.prepareStatement(sql);
ps.setString(1, fileName);
ps.executeUpdate();
ps.close();
//使用for update来锁定此字段
ps = con.prepareStatement("select contexts from cbh WHERE filename= ? for update ");
ps.setString(1, fileName);
rs = ps.executeQuery();
if (rs.next())
{
//获得第一个字段
Blob image = rs.getBlob(1);
//获得一个输出流
OutputStream out = image.setBinaryStream(0);
BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
BufferedInputStream bufferedIn = new BufferedInputStream(is);
int c;
while ((c = bufferedIn.read()) != -1)
{
bufferedOut.write(c);
}
bufferedIn.close();
bufferedOut.close();
String sql = "insert into cbh(filename, contexts)";
sql += " VALUES(?, empty_blob())";
ps = con.prepareStatement(sql);
ps.setString(1, fileName);
ps.executeUpdate();
ps.close();
//使用for update来锁定此字段
ps = con.prepareStatement("select contexts from cbh WHERE filename= ? for update ");
ps.setString(1, fileName);
rs = ps.executeQuery();
if (rs.next())
{
//获得第一个字段
Blob image = rs.getBlob(1);
//获得一个输出流
OutputStream out = image.setBinaryStream(0);
BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
BufferedInputStream bufferedIn = new BufferedInputStream(is);
int c;
while ((c = bufferedIn.read()) != -1)
{
bufferedOut.write(c);
}
bufferedIn.close();
bufferedOut.close();
剩余7页未读,继续阅读
资源评论
- youqiang032012-04-16内容写得比较详细,按照文档设置,成功下载
- 愤怒的咕噜噜2013-05-25挺实用的 开发中试试吧
- wh080836232013-01-21挺好的,有帮助到,谢谢了
- 绝版男子2013-07-02步骤挺详细的,不过我用这种方式没成功,可能跟我的ibatis版本有关,后来通过JDBC方式做了。
- herramadeus2013-03-13挺好的 有帮助
qiaowenquan8
- 粉丝: 1
- 资源: 38
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- NetOps-py通过sftp替换网络设备启动文件
- STM32单片机FPGA毕设电路原理论文报告任务驱动教学法在单片机课程教学中的应用
- STM32单片机FPGA毕设电路原理论文报告任务驱动法在单片机教学中的应用
- STM32单片机FPGA毕设电路原理论文报告人造金刚石压机智能化压力测控系统设计
- 以某列为依据匹配多项(Excel版)
- STM32单片机FPGA毕设电路原理论文报告人体短臂离心机实验台的显示控制系统
- STM32单片机FPGA毕设电路原理论文报告人工气候室监控系统的环境控制器研究
- STM32单片机FPGA毕设电路原理论文报告染整自动线张力控制系统的设计
- 数据挖掘与机器学习-实验
- 基于Linux系统Nginx的动态网站的LNMP环境源码包
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功