仓酷云

标题: JAVA网页设计oracle之CLOB处置完全版 [打印本页]

作者: 飘灵儿    时间: 2015-1-18 11:39
标题: JAVA网页设计oracle之CLOB处置完全版
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。oracle/**
*
*操纵oracle数据库的CLOB字段,包含读和写
*令少爷
**/

packagecom.nes.common.sql.lob;

importjava.sql.*;
importjava.io.*;
importoracle.jdbc.OracleResultSet;
importoracle.sql.*;

publicclassJClob{

StringtableName=null;//表名
StringprimaryKey=null;//表的主键名
StringprimaryValue=null;//表的主键值
StringfieldName=null;//表的CLOB字段名
StringclobValue=null;//表的CLOB字段值

Connectionconn=null;//与oracle的毗连

/**
*
*用于测试用
*
**/
publicstaticvoidmain(String[]args){
try{
JClobjc=newJClob(getConnection(),"aa","a","aaaa","c","ccc");
jc.write();
jc.read();
}
catch(Exceptione){
System.out.println(e);
e.printStackTrace();
}
}


/**
*
*机关办法
*
**/
publicJClob(Connectionconnection,StringtableName,StringprimaryKey,StringprimaryValue,StringfieldName,StringclobValue){
this.conn=connection;
this.tableName=tableName;
this.primaryKey=primaryKey;
this.primaryValue=primaryValue;
this.fieldName=fieldName;
this.clobValue=clobValue;
}

/**
*
*机关办法,但不用传clobValue值
*一样平常机关出的实例用来读Clob字段
*
**/
publicJClob(Connectionconnection,StringtableName,StringprimaryKey,StringprimaryValue,StringfieldName){
this.conn=connection;
this.tableName=tableName;
this.primaryKey=primaryKey;
this.primaryValue=primaryValue;
this.fieldName=fieldName;
}

/**
*
*用于测试
*
**/
publicstaticConnectiongetConnection()throwsSQLException,ClassNotFoundException{
Class.forName("oracle.jdbc.OracleDriver");
Connectionconn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.18:1521:portal","portal","portal");
returnconn;
}

/**
*
*读数据库中clob字段的内容
*@returnclob字段值
*
**/
publicStringread()throwsSQLException,IOException{
Stringrtn=null;
try{
Stringsql="select"+fieldName+"from"+tableName+"where"+primaryKey+"="+primaryValue;
//Connectionconn=getConnection();
PreparedStatementpstmt=conn.prepareStatement(sql);
//intv=Integer.parseInt(primaryValue);
//pstmt.setInt(1,v);
ResultSetrs=pstmt.executeQuery();

java.sql.Clobclob=null;
if(rs.next()){
clob=rs.getCLOB(fieldName);
//clob=((OracleResultSet)rs).getCLOB(fieldName);
//clob=((org.apache.commons.dbcp.DelegatingResultSet)rs).getClob(fieldName);
//Readerin=clob.getCharacterStream();
InputStreaminput=clob.getAsciiStream();
intlen=(int)clob.length();
byte[]by=newbyte[len];
inti;//=input.read(by,0,len);
while(-1!=(i=input.read(by,0,by.length))){
input.read(by,0,i);
}
rtn=newString(by);
}
}
catch(SQLExceptione){
throwe;
}
catch(Exceptionee){
ee.printStackTrace();
}

returnrtn;
}

/**
*
*葱数据库中clob字段的内容
*
**/
publicvoidwrite()throwsSQLException,IOException{
Stringsql="update"+tableName+"set"+fieldName+"=empty_clob()where"+primaryKey+"="+primaryValue;
//Connectionconn=getConnection();
conn.setAutoCommit(false);

PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.executeUpdate();

sql="select"+fieldName+"from"+tableName+"where"+primaryKey+"="+primaryValue;
Statementst=conn.createStatement();
ResultSetrs=st.executeQuery(sql);

java.sql.Clobclob;
if(rs.next()){
clob=((oracle.jdbc.OracleResultSet)rs).getClob(fieldName);
//clob=((org.apache.commons.dbcp.DelegatingResultSet)rs).getClob(fieldName);
oracle.sql.CLOBmy_clob=(oracle.sql.CLOB)clob;
OutputStreamwriter=my_clob.getAsciiOutputStream();
byte[]contentStr=this.getContent().getBytes();
writer.write(contentStr);
writer.flush();
writer.close();
}

conn.commit();
rs.close();
st.close();
pstmt.close();
conn.setAutoCommit(true);
}

/**
*
*
**/
privateStringgetContent(){
returnthis.clobValue;
}

/**
*
*
**/
publicvoidsetClobValue(StringclobValue){
this.clobValue=clobValue;
}
}


最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的
作者: 不帅    时间: 2015-1-21 12:23
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 再现理想    时间: 2015-2-2 07:44
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者: 分手快乐    时间: 2015-2-4 15:52
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 飘灵儿    时间: 2015-2-6 01:01
是一种语言,用以产生「小应用程序(Applet(s))
作者: 老尸    时间: 2015-3-4 09:39
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: 小魔女    时间: 2015-3-8 12:22
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 爱飞    时间: 2015-3-15 22:52
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 金色的骷髅    时间: 2015-3-22 17:12
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者: admin    时间: 2015-3-31 11:39
是一种突破用户端机器环境和CPU
作者: 兰色精灵    时间: 2015-4-3 21:27
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 活着的死人    时间: 2015-4-12 08:16
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 只想知道    时间: 2015-4-15 11:54
是一种将安全性(Security)列为第一优先考虑的语言
作者: 柔情似水    时间: 2015-4-16 00:55
是一种突破用户端机器环境和CPU
作者: 第二个灵魂    时间: 2015-4-22 00:54
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 乐观    时间: 2015-4-24 20:26
是一种使用者不需花费很多时间学习的语言
作者: 山那边是海    时间: 2015-4-25 06:04
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 若相依    时间: 2015-4-27 21:20
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 谁可相欹    时间: 2015-4-30 12:50
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2