- 浏览: 300105 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
z390174504:
恩,确实,我也遇到了,好像是库冲突了,我在一个库项目中,单独引 ...
VerifyError: Error #1053: Illegal override of… -
cl1154781231:
您好,为什么使用tk-filter不用过滤*.gzip???我 ...
ExtJS使用gzip压缩 -
YY008871:
仅限ie下登录成功或失败吗?
单点登录—基于cookie的简单实现(IE) -
蛋的懒蛋:
不好用啊,IE7是运行了,但是就是一启动就报错了,接着就关了 ...
IE7绿色版下载-转载 -
fireinwind:
harman001 写道 ,为什么我的id大写同样没事啊!- ...
Spring配置文件中id的第二个字母不能大写问题
package com.yysoft.a.test;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.yysoft.util.Debug;
import com.yysoft.util.Library;
import oracle.jdbc.driver.OracleTypes;
import oracle.sql.CLOB;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
updateClob();
getOtherClob();
}
public static void addClob(){
try {
String content="AAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCC";
char[] cc=content.toCharArray();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@10.99.1.114:1521:orcl","e3baoan","e3baoan");
//手动提交
conn.setAutoCommit(false);
/* 以下表cjhtest中的cjhcontent字段时CLOB类型的 */
//插入一条数据,注意CLOB字段,需要先插入一个空的clob类型 empty_clob(),然后再单独更新clob字段
String sql = "insert into cjhtest(cjhid,cjhcontent) values(?,empty_clob())";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, 1);
int i1=pstmt.executeUpdate();
conn.commit();
pstmt=null;
if(i1>0){
System.out.println("插入成功");
}
ResultSet rs=null;
CLOB clob=null;
String sql1="select cjhcontent from cjhtest where cjhid=? for update";
pstmt=conn.prepareStatement(sql1);
pstmt.setInt(1, 1);
rs=pstmt.executeQuery();
if(rs.next()){
//取得刚才的HCONTENT的内容,也就是刚才添加的empty_clob()
clob=(CLOB) rs.getClob(1);
}
//需要用clob.getCharacterOutputStream()流方式输出
Writer wirte=clob.getCharacterOutputStream();
wirte.write(cc); //向大字段定数据
wirte.flush(); //强制写入
wirte.close(); //关闭
rs.close();
conn.commit();
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void updateClob(){
try {
String content="ABCDEFGHIJKLMNOPQRSTUVWSYZ";
char[] cc=content.toCharArray();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@10.99.1.114:1521:orcl","e3baoan","e3baoan");
conn.setAutoCommit(false);
String sql="update cjhtest set cjhcontent=empty_clob() where cjhid=?";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, 1);
int i1=pstmt.executeUpdate();
conn.commit();
pstmt=null;
if(i1>0){
System.out.println("清空成功");
}
ResultSet rs=null;
CLOB clob=null;
String sql1="select cjhcontent from cjhtest where cjhid=? for update";
pstmt=conn.prepareStatement(sql1);
pstmt.setInt(1, 1);
rs=pstmt.executeQuery();
if(rs.next()){
clob=(CLOB) rs.getClob(1);
}
Writer writer=clob.getCharacterOutputStream();
writer.write(cc);
writer.flush();
writer.close();
rs.close();
conn.commit();
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void getClob(){
try {
String content="";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@10.99.1.114:1521:orcl","e3baoan","e3baoan");
conn.setAutoCommit(false);
ResultSet rs=null;
CLOB clob=null;
String sql="select cjhcontent from cjhtest where cjhid=?";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, 1);
rs=pstmt.executeQuery();
if(rs.next()){
clob=(CLOB) rs.getClob(1);
}
if(clob!=null && clob.length()!=0){
content=clob.getSubString((long)1, (int)clob.length());
}
rs.close();
conn.commit();
pstmt.close();
conn.close();
System.out.println(content);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//取得的另一种方式
public static void getOtherClob(){
try {
String content="";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@10.99.1.114:1521:orcl","e3baoan","e3baoan");
conn.setAutoCommit(false);
ResultSet rs=null;
CLOB clob=null;
String sql="select cjhcontent from cjhtest where cjhid=?";
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, 1);
rs=pstmt.executeQuery();
if(rs.next()){
clob=(CLOB) rs.getClob(1);
}
if(clob!=null && clob.length()!=0){
content=Clob2String(clob);
}
rs.close();
conn.commit();
pstmt.close();
conn.close();
System.out.println(content);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 从大字段对象中读取数据,并转换成字符
* @return 大字段字符
*/
public static String Clob2String(CLOB clob)
{
String content = null;
StringBuffer stringBuf = new StringBuffer();
try
{
int length = 0;
Reader inStream = clob.getCharacterStream(); //取得大字侧段对象数据输出流
char[] buffer = new char[10];
while ((length = inStream.read(buffer)) != -1) //读取数据库 //每10个10个读取
{
for (int i=0; i<length; i++)
{
stringBuf.append(buffer[i]);
}
}
inStream.close();
content = stringBuf.toString();
}
catch(Exception ex)
{
System.out.println("ClobUtil.Clob2String:" + ex.getMessage());
}
return content;
}
/**
* 把字符串存入大字段对象中
* @param content 内容
* @return
*/
public static CLOB String2Clob(String content)
{
boolean flag = false;
if(content==null)
return null;
CLOB clob=null;
try
{
Writer outStream = clob.getCharacterOutputStream(); //取得大字段对象数据输入流
char[] data = Library.toChinese(content).toCharArray(); //把源字符串转换成char数组
outStream.write(data); //向大字段定数据
outStream.flush(); //强制写入
outStream.close(); //关闭
return clob;
}
catch(Exception ex)
{
System.out.println("ClobUtil.String2Clob:" + ex.getMessage());
return null;
}
}
}
发表评论
-
什么是java序列化,如何实现java序列化? .
2013-04-18 11:38 806Java 串行化技术可以使 ... -
javaMail邮件发送java.lang.SecurityException: Access to default session denied
2012-07-04 15:48 5198{exception=java.lang.SecurityEx ... -
java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB
2012-05-12 18:46 1369开发时,向oracle写入blob数据时,如下: ... -
敏捷开发纵横谈
2012-03-07 15:31 663摘要: 在IT界中,“敏 ... -
Attribute value request.getAttribute("id") is quoted with " which must be
2009-11-25 12:55 2425<eoms:roomusr id="listU ... -
Flex CreateProcess: ...... error=2
2009-09-03 09:05 1750... -
Eclipse Subversive Installation with Eclipse 3.4.2
2009-09-02 22:03 1258I recently had the problem to i ... -
脚本中出现 window.open() access is denied - 拒绝访问 情况一则及分析
2009-09-02 14:11 1447也许这个状况有的朋友 ... -
java中产生随机数
2009-06-23 16:06 975import java.util.Random; /** * ... -
Collection和Map支持
2009-05-18 20:29 1083WebWork支持多种方法来判断集合中的对象类型. 这是通过一 ... -
eclipse 不自动编译java文件的问题
2009-04-08 14:15 1663今天出现了eclipse 不自动编译java文件的问题,在网上 ... -
properties文件编码问题
2009-04-03 11:04 1000在阅读JAVA程序的时候,遇到了一个问题:propertie ... -
Java编程技术中汉字问题的分析及解决
2009-04-03 11:02 886在基于 Java 语言的编程 ... -
EL表达式
2009-04-03 10:56 1383EL语法 EL的语法很简单 ... -
为什么Java不支持创建范型数组?
2008-12-22 11:44 1074http://www.blogjava.net/myqiao/ ... -
每一个JAVA初学者都应该搞懂的问题
2008-12-11 17:25 590对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果 ... -
通过java或jsp向数据库存取二进制图片
2008-11-21 15:55 2524前几天突然看到学校音乐站上的图片原来是存储在数据库上的 ... -
把重要的业务日志异步批量写入数据库
2008-11-17 09:40 24841. 把重要的业务日志异 ... -
Checked vs UnChecked 异常 ,使用场合?
2008-10-24 17:04 3938异常的概念 ... -
Spring对JNDI的支持
2008-10-09 17:10 2036Spring中对于JNDI的访问,提供了便捷的方法,在Spri ...
相关推荐
主要是整合了jdbc处理clob类型的增删改查方法,有需要的同学可以看下
JDBC读写Oracle的CLOB字段
oracle中使用jdbc读写clob字段,很多细节介绍,内容全面。
JDBC方式操作CLOB字段实例代码 。
weblogic下转换oracle 的clob类型经常报转型错误,本例子通过反射解决weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB转型成oracle.sql.CLOB问题
JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等对象 实例详细JDBC中操作Blob、Clob等...
本篇文章是对jdbc处理Clob的使用进行了分析介绍,需要的朋友参考下
JDBC中操作Blob、Clob等对象
主要介绍了详解jdbc实现对CLOB和BLOB数据类型的操作的相关资料,这里实现写入操作与读写操作,需要的朋友可以参考下
java操作oracle的clob字段,clob字段 添加 修改
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...
clob和blob在jdbc的应用~~~~~~
本篇文章是对jdbc处理oracle的clob字段进行了详细的分析介绍,需要的朋友参考下
mybatis 对clob类型转换,解决clob类型数据插入数据库报异常问题
jdbc操作oracle数据库中的Clob类型
本文讲解Oracle如何对CLOB行字段来执行全文检索。
本篇是对使用jdbc,hibernate处理clob/blob字段进行了详细的分析介绍,需要的朋友参考下
DELPHI的CLOB和BLOB存取处理
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
BLOB和CLOB的区别以及在ORALCE中的插入和查询操作