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

前端之家收集整理的这篇文章主要介绍了oracle+jsp中blob类型存储大文本问题的解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

|

  【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);//这就是取出来的大文本  %>

原文链接:https://www.f2er.com/oracle/207334.html

猜你在找的Oracle相关文章