Tomcat 5.5 连接池 CLOB
来源:互联网 发布:淘宝怎么没有换货申请 编辑:程序博客网 时间:2024/05/01 22:10
在网上看了好多资料 发现对CLOB的操作都是基于JDBC的,没有找到基于Tomcat连接池的!
以下是比较常见的写法
public void Insert_ChinasunNews_Controlinfo(String news_id,String news_content) {
// 插入CLOB文件;
Statement stmt=null;
ResultSet rss=null;
PreparedStatement pstmt=null;
Connection conn = t.getConn(); //获取数据连接 //信息;
try
{
conn.setAutoCommit(false);
stmt=conn.createStatement();
String sel_sql="select news_content from news_base_news where news_id='"+news_id+"' for update"; //先查询
System.out.println(sel_sql);
rss=stmt.executeQuery(sel_sql);
if(rss.next()) {
oracle.sql.CLOB clob = ((oracle.jdbc.OracleResultSet)rss).getCLOB(1); //获取CLOB
System.out.println("Insert_ChinasunNews_Controlinfo:clob");
char[] char_conten=news_content.toCharArray();
clob.putChars(char_conten.length,char_conten);
String update_sql="update news_base_news set news_content=? where news_id='"+news_id+"'";
System.out.println("Insert_ChinasunNews_Controlinfo:update_sql"+update_sql);
pstmt=conn.prepareStatement(update_sql); //更新
pstmt.setClob(1,clob);
System.out.println("Insert_ChinasunNews_Controlinfo:pstmt"+pstmt);
pstmt.executeUpdate();
//pstmt.close();
}
conn.commit();
} catch (Exception ex) {
try {conn.rollback();} catch (SQLException e) {e.printStackTrace();}
ex.printStackTrace();
} finally{
try {pstmt.close();} catch (Exception ex1) {}
try {rss.close();} catch (Exception ex1) {}
try {stmt.close();} catch (Exception ex1) {}
try {conn.close();} catch (Exception ex2) {}
}
}
该写法中 Connection conn = t.getConn(); 这个函数如果是通过JDBC连接oracl数据库的话 是没有问题的,但是如果通过
tomcat的POOL连接数据库 就会有如下的报错java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.DelegatingResultSet cannot be cast to oracle.jdbc.OracleResultSet
这个问题其实解决很简单,只要把这句oracle.sql.CLOB clob = ((oracle.jdbc.OracleResultSet)rss).getCLOB(1);
改写成oracle.sql.CLOB clob = (CLOB) ((org.apache.tomcat.dbcp.dbcp.DelegatingResultSet)rss).getClob(1);
就OK了
其它:http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=123&threadID=32236&messageID=189918
- Tomcat 5.5 连接池 CLOB
- 在使用tomcat连接池的情况下,怎样添加CLOB或BLOB字段值
- 在TOMCAT中,以jndi(tomcat连接池)方式操作clob字段时,类型转换异常的对策
- tomcat 5.0 /tomcat 5.5 /tomcat 6.0连接oracle9i连接池
- tomcat 5.5配连接池
- tomcat 5.5 mysql 连接池
- 使用dbcp连接池用getJdbcTemplate操作clob字段
- Weblogic、Tomcat、Oracle与Clob
- Tomcat 5.5连接池的配置
- tomcat 5.5.23连接池的问题
- Tomcat 5.5中配置连接池
- tomcat 5.5连接池配置方法
- tomcat连接池配置
- tomcat JNDI 连接池
- Tomcat连接池
- Tomcat连接池配置
- TOMCAT 连接池应用
- Tomcat连接池设置
- Fedora10非官方安装手册
- 21天学通JAVA:类设计的技巧
- Potential Errors Passing CRT Objects Across DLL Boundaries
- Delphi设计模式之单例模式(Singleton Pattern)
- 如何写DLL
- Tomcat 5.5 连接池 CLOB
- 系统经常假死该如何解决
- 人事资料管理
- 如何控制在父子窗体中只打开一次子窗体
- 【转自百度】北京IT培训机构就业率调研
- 开机BIOS语言
- C# 判断文件夹是否为空
- 为什么总是后悔曾经努力工作 马润梅
- ARM920T的MMU与Cache ——转载