存clob为空的值_将网页文本(HTML)保存到ORACLE数据库CLOB字详解
网上常见的例子总是将文本文件上传至数据库的方法。今天在做文档管理相关系统时,需要将网页上的文本输入框(textarea或input)中的内容,上传到ORACLE数据库的CLOB字段中去。在网上找了好长时间,总算有所收获,现将方法总结如下,其中部分代码为其它网友的源码:
一、上传
private void updateContent(Connection conn, Information info) throws Exception {
PreparedStatement pstmt = conn.prepareStatement(
"SELECT CONTENT FROM INFO_CONTENT WHERE ID=? FOR UPDATE");
pstmt.setInt(1, info.getId());
ResultSet rs = pstmt.executeQuery();
/* 取出此CLOB对象 */
if (rs.next()) {
//Weblogic这样写
OracleThinClob clob = (OracleThinClob) rs.getClob(1);
//其它服务器这样写
//oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob(1);
/* 向CLOB对象中写入数据 */
/*
//保存文件
//BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
//BufferedReader in = new BufferedReader(new FileReader(filename));
*/
//保存字符串
Writer out = clob.getCharacterOutputStream();
out.write(info.getContent());
out.flush();
out.close();
rs.close();
pstmt.close();
}
}
二、在jsp中显示
public Information getInformation(int id) throws Exception {
Information base = new Information();
Connection conn = null;
try {
conn = DBConnect.GainDBConnect();
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM INFO_CONTENT WHERE ID=?");
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
java.sql.Clob clob = (java.sql.Clob) rs.getClob("CONTENT");
/* 以字符形式输出 */
Reader out = new BufferedReader(clob.getCharacterStream());
BufferedReader bfClob = new BufferedReader(out);
String strClob = bfClob.readLine();
StringBuffer sbResult = new StringBuffer();
while (strClob != null) {
sbResult.append(strClob);
strClob = bfClob.readLine();
}
base.setContent(sbResult.toString());
out.close();
}
rs.close();
ps.close();
}
catch (Exception ex) {
System.out.println(ex);
throw ex;
}finally {
conn.close();
}
return base;
}
转载请注明来源网站:www.itxm.cn谢谢!
分享到:
存clob为空的值_将网页文本(HTML)保存到ORACLE数据库CLOB字详解相关推荐
- 存clob为空的值_给Oracle数据库中CLOB字段插入空值
遇到往ORACLE数据库中插入数据时总是报ORA-01084 invalid argument in OCI call错误,经分析是因为表中的一个字段类型为CLOB,并且可为空,当在给该字段插入空值时 ...
- oracle数据库sga用途_关于oracle数据库中SGA详解
1 名称 1.1 组成 SGA主要由数据高速缓冲区(Database Buffer Cache).共享池(Shared Pool).重做日志缓冲区(Redo Log Cache).大型池(Large ...
- ★核心关注点_《信息系统项目管理师考试考点分析与真题详解》
★核心关注点_<信息系统项目管理师考试考点分析与真题详解> 真诚感谢你选用<信息系统项目管理师考试考点分析与真题详解>作为高级项管的辅导用书.对于使用该书的读者们,在备考201 ...
- android数据库给单选赋值,如何使用android studio将单选按钮的值保存到mysql数据库?...
我想创建一个投票应用程序,其中有不同的职位,其中有两个职位每个都有两个联系人.我希望当我选择一个人记录到数据库. [职位的disgn与它的参赛者部] 下面是XML代码的一部分:如何使用android ...
- php oracle 大字段,php oracle数据库clob和nclob字段
php oracle数据库clob和nclob字段 nclob类型 1.nclob不能使用php的stream_get_contents来获取数据库的资源内容, 2.并且nclob只能使用to_cha ...
- 存clob为空的值_oracle clob 存储空间
ORACLE clob字段整理 一.CLOB字段的业务说明:CLOB为字符LOB,是LOB 的一种.这种类型用于存储大量的文本信息,如XML 或者只是纯文本.这个数据类型需要进行字符集转换,也就是说, ...
- java mysql nclob_java向oracle数据库Clob读取,写入数据
写入数据 1. 向oracle clob字段创建一个空的 empty_clob()对象.insert into PTR_AssetXml(cChr_AssetPlanId,cChr_AssetDat ...
- c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解
静态链接与动态链接的宏观概述及微观详解 第一部分 宏观概述 1. 静态链接 静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库 ...
- c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...
最新文章
- NGUI_Depth
- python列表的用法
- AB1601 IO口反应延时的问题
- WPF 实现倒计时转场动画~
- Android之如何解决Android studio运行出现的HAX kernel modules is not installed
- D. Best Edge Weight(最小生成树 + 树链剖分)(Codeforces Round #423 (Div. 1, rated, based on VK Cup Finals))
- FineUI(专业版)v3.0.0 发布,手机、平板和桌面全支持!
- ubuntu 13.04安装注意事项和ROOT密码设置
- pyechart图像示例与细节修改资料
- poj 1006 java_POJ 1006 Java:中国剩余定理
- 大数据在消防安全中的新应用
- 在js中通过location.href方式跳转页面并在路径上传递参数中文乱码解决
- Python: str、datetime、time、seconds
- samba端口号修改_samba 端口号(samb端口号)
- php 改变图片大小,如何把照片尺寸改小 电子照片尺寸怎么改
- mysql_sniffer安装
- 天天向上的力量python代码解释_天天向上的力量 B
- 【C#进阶四】详细总结C#中的文件和I/O流之文件和目录(File 、 FileInfo、Directory、DirectoryInfo和Path)
- POE交换机供电知识
- 开源为什么是“白色”的?