把(oracle.jdbc.driver.OracleResultSet)rs
换成rs另外,有时候修改了某些类时需要重启WL,否则也会有ClassCastException
换成rs另外,有时候修改了某些类时需要重启WL,否则也会有ClassCastException
解决方案 »
- 关于jsp中调用applet相对路径的问题
- aop无法拦截SimpleFormController当中的方法
- struts2+spring+hibernate中实现文件批量压缩下载
- 有人能说说这冒泡排序是怎么比的吗?谢谢.请进
- session的问题,我搜了以前的贴还是解决不了。
- 用<jsp:include>怎么得不到参数问题??
- String如何转换成Float
- 解决马上结贴!! 在页面上有个表单,还有两个提交按钮,我想在单击a按钮的时候将表单提交到a页面,单击b按钮的时候提交到b页面,怎么做?
- Tomcat4.1+JDK1.4+eclipse2.13配置环境的问题..急!!!!!
- WEB开发高手请进!看起来很简单,却不好实现的问题.
- jsp 求救
- jsp连接局域网内的SQL server,是否要改localhost???还是怎样??
中的((oracle.jdbc.driver.OracleResultSet)是什么意思啊。
你这里是把oracle.jdbc.driver.OracleResultSet这个类型转化成oracle.sql.CLOB这个类型,这样行不?
oracle.sql.CLOB clob =(oracle.sql.CLOB) ((oracle.jdbc.driver.OracleResultSet)rs).getClob("CLOBCOL");
试试!
ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM bulletin WHERE ID='111' FOR UPDATE");
while (rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");
BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
BufferedReader in = new BufferedReader(new FileReader(infile));
int c;
while ((c=in.read())!=-1) {
out.write(c);
}
in.close();
out.close();
}
这样才对
真是得,别忘了给分
类型转换异常。你就在类型上找原因吧,跟别的无关
你怎么就能把ResultSet类型转换为oracle.jdbc.driver.OracleResultSet类型????
这么写也不对,还是到这句话出错
Clob c = resultset.getClob(1);
weblogic.jdbc.common.OracleClob clob = (weblogic.jdbc.common.OracleClob) c;
//对clob直接操作。
DriverName="oracle.jdbc.driver.OracleDriver"
驱动是jdbc:oracle:thin:@localhost:1521:SZK
还有其他的方法吗?
我也要
[email protected]
oracle.sql.CLOB clob = ((oracle.jdbc.driver.OracleResultSet)rs).getClob("CLOBCOL");
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn =
DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.193:1521:oradb", "system", "manager");
PreparedStatement ps = conn.prepareStatement("select NR from XX where ID=5");//where ID=487
ResultSet rs = ps.executeQuery();
while (rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob(1);
System.out.println(clob);
System.out.println(rs.getString(2));
}
rs.close();
ps.close();
conn.close();
}
catch (Exception e) {
e.printStackTrace();
}
select dbms_lob.getlength(content) from article;第一种方法;数据库连接方式是直接连接则可以用以下方式
conn.setAutoCommit(false);
String Sql="insert into article (aclassid,anclassid,title,content,iner,writer,keyword,writefrom,px,virusid,softid) values("+us.getAclassid()+","+us.getAnclassid()+",'"+us.getTitle()+"',empty_clob(),'"+us.getAuthor()+"','"+us.getWriter()+"','"+us.getRelatitle()+"','"+us.getComefrom()+"',"+us.getOrder()+",'"+us.getVirusId()+"','"+us.getSoftId()+"')";
System.out.println(Sql);
stmt = conn.createStatement();
stmt.executeUpdate(Sql);
conn.commit();
//stmt = conn.prepareStatement(sql);//查询刚刚插入的空的content值的最大编码
String SqlMax="select unid from article order by unid desc";
rs=stmt.executeQuery(SqlMax);
int unid_count=1;
if (rs.next()){
unid_count = rs.getInt("unid");
}
System.out.print(unid_count);
//更新内容为最新值
System.out.print(us.getContent());
String SqlUpdate="select content from article where unid="+unid_count+" for update";
ResultSet rs_update = stmt.executeQuery(SqlUpdate);
if (rs_update.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs_update.getClob(1);
clob.putString(1, us.getContent());
String sql = "update article set content=? where unid="+unid_count+"" ;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setClob(1, clob);
pstmt.executeUpdate();
}
conn.commit();
ifAdd = true;
============================================================
更新操作
conn.setAutoCommit(false);
stmt = conn.createStatement();
//晴空原来clob对象为空
stmt.executeUpdate("UPDATE article SET content=empty_clob() WHERE unid='"+us.getUnid()+"'");
//更新内容为最新值
//所顶所在行
String SqlUpdate="select content from article where unid='"+us.getUnid()+"' for update";
ResultSet rs_update = stmt.executeQuery(SqlUpdate);
if (rs_update.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs_update.getClob(1);
clob.putString(1, us.getContent());
String sql = "update article set content=?,title=?,aclassid=?,anclassid=?,title_url=?,picture=?,picture_url=?,fujian=?,commend=?,iscomment=?,author=?,isorder=?,relatitle=?,comefrom=?,summary=? where unid='"+us.getUnid()+"'" ;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setClob(1, clob);
pstmt.setString(2,us.getTitle());
pstmt.setInt(3,us.getAclassid());
pstmt.setInt(4,us.getAnclassid());
// pstmt.setString(5,us.getTitle_url());
// pstmt.setString(6,us.getPicture());
//pstmt.setString(7,us.getPicture_url());
//pstmt.setString(8,us.getFujian());
//pstmt.setString(9,us.getCommend());
//pstmt.setString(10,us.getComment());
pstmt.setString(11,us.getAuthor());
pstmt.setInt(12,us.getOrder());
pstmt.setString(13,us.getRelatitle());
pstmt.setString(14,us.getComefrom());
//pstmt.setString(15,us.getSummary());
pstmt.executeUpdate();
}
conn.commit();
conn.close();
rs_update.close();
stmt.close();
ifAdd = true;
===============================================
读取操作
stmt = conn.createStatement();
String sql = "select * from article where unid='"+unid+"'";
rs = stmt.executeQuery(sql);
String content = "";
if (rs.next()) {
java.sql.Clob clob = (java.sql.Clob)rs.getClob("content");
if (clob != null){
Reader is = clob.getCharacterStream();BufferedReader br = new BufferedReader(is);
String s = br.readLine();
while (s != null) {
content += s + "<br>";
s = br.readLine();
}
}
//String title=;
us.setTitle(rs.getString("title"));
us.setContent(content);
System.out.print(content);
System.out.println("sdfffffffffffffff");us.setAclassid(Integer.parseInt(rs.getString("aclassid")));
us.setAnclassid(Integer.parseInt(rs.getString("anclassid")));
us.setAuthor(rs.getString("iner"));
us.setComefrom(rs.getString("writefrom"));
us.setCommend(rs.getString("flag2"));
us.setOrder(Integer.parseInt(rs.getString("px")));
us.setRelatitle(rs.getString("keyword"));
us.setStatus(rs.getString("state"));
us.setWriter(rs.getString("writer"));
us.setAddTime(rs.getString("intime"));
us.setViewhit(rs.getString("viewhit"));
us.setSoftId(rs.getString("softid"));
us.getAclassid();//String title_url=rs.getString("title_url");
}
==============================================
==========================
第三种方法:使用tomcat连接池的问题如果使用第一种方法来添加或者更新就会出现java.lang.ClassCastException: oracle.sql.CLOB的类型构造错误,解决方法是不做任何程序改动,把lib下的classes12.jar(oracle包)删除既可以解决,读取文章的程序也不做任何变动
====================================
===========
第二种方法:当使用weblogic连接池进行添加和更新时1)导入weblogic的类文件,该文件在weblogic安装目录下就可以找到,weblogic.jar
2)将以上语句改为(oracle.sql.CLOB clob = (oracle.sql.CLOB)rs_update.getClob(1);
)--------------
weblogic.jdbc.vendor.oracle.OracleThinClob clob = (OracleThinClob)rs_update.getClob(1)3)读取文章不做任何改动