加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle+jsp中blob类型存储大文本问题的解决

发布时间:2020-12-12 14:21:39 所属栏目:百科 来源:网络整理
导读:| 【IT168 服务器 学院】oracle+jsp中blob类型 存储 大文本问题解决方法 oracle存储大文本一直是一个棘手的问题。 一、存数据库: %@page contentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""% % //定义变量 java.sql.Co
|

  【IT168服务器学院】oracle+jsp中blob类型存储大文本问题解决方法

  oracle存储大文本一直是一个棘手的问题。

  一、存数据库:

  <%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"errorPage=""%>
  <%
  //定义变量
  java.sql.Connectionconn;//数据库连接对象
  Stringsql;
  longid;
  ResultSetrs;
  Statementstmt,stmt1;

  java.sql.DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());//装载JDBC驱动程序
  conn=java.sql.DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.2:1521:lqxm","lqxm","lqxm");//连接数据库

  request.setCharacterEncoding("GBK");
  Stringtitle=request.getParameter("title");
  Stringcontent=request.getParameter("content");
  Stringsort=request.getParameter("sort");
  Stringtype=request.getParameter("type");
  Stringrq=request.getParameter("rq");
  Stringqy=request.getParameter("qy");
  //插入数据,此时blob字段中插入的是空值
  sql="insertintot_flfg(xlh,title,content,rq,sort,type,qy)";
  sql=sql+"Values(FLFG_SEQ.NEXTVAL,''"+title+"'',empty_clob(),''"+rq+"'',''"+sort+"'',''"+type+"'',''"+qy+"'')";
  stmt=conn.createStatement();
  stmt.executeUpdate(sql);
  conn.commit();

  conn.setAutoCommit(false);
  stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  //取得刚才插入的ID
  sql="selectmax(xlh)asxlhfromt_flfg";
  rs=stmt.executeQuery(sql);
  if(rs.next()){
  id=rs.getInt("xlh");
  }
  rs.close();

  sql="selectcontentfromt_flfgwherexlh="+id+"forupdate";
  rs=stmt.executeQuery(sql);
  if(rs.next()){
  oracle.sql.CLOBclob=(oracle.sql.CLOB)rs.getClob(1);
  clob.putString(1,content);
  sql="updatet_flfgsetcontent=?wherexlh="+id+"";//将大文本更新进去,呵呵
  PreparedStatementpstmt=conn.prepareStatement(sql);
  pstmt.setClob(1,clob);
  pstmt.executeUpdate();
  }

  conn.commit();
  stmt.close();
  conn.close();
  %>

  二、检索显示数据:

  <%
  ResultSetrs=flfgSave.searchOneInfo(request.getParameter("xlh"));//查询数据库获取记录集
  rs.next();

  inty;
  Stringcontent="";
  oracle.sql.CLOBclob1;
  charac[]=newchar[299];

  Stringtitle=rs.getString("title");

  clob1=(oracle.sql.CLOB)rs.getObject("content");  Readerreader=clob1.getCharacterStream();  while((y=reader.read(ac,299))!=-1)  content+=newString(ac,y);//这就是取出来的大文本  %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读