第七章 超长文本的操作——Clob类型数据的存取
回到我编写留言板的时候,当时要存放留言板的正文内容,发现VARCHAR2()(可变长度的字符串)只能存4000字节,也就是2000个汉字,这也太少了啊,查一下数据库类型的资料,发现有这么几个类型:LONG,2G(要是我没记错的话,它是为了向前兼容,不推荐使用);CLOB,4G,字符;BLOB,4G,二进制。看来超长文本应该使用CLOB了,图片自然是用BLOB了,询问了一下别人,知道这两种类型是不能像VARCHAR2()那样直接存的,只好作罢,先用VARCHAR2()顶一阵。 后来我终于有空了,决心要完成这个任务,在网上查了一番资料,看了别人的例子,总算是无师自通看明白了:存的时候需要使用empty_clob()(这个不是Java的函数)先存一个空的标识(用我的理解就是先初始化一下),然后通过“流”将数据写入。下面是代码,其中try里面的是CLOB类型的存操作: -----------------------------------save_new.jsp------------------------------------------ <%@ include file="include.inc"%> <%@ page contentType="text/html;charset=gb2312" errorPage="request_error.htm"%> 无标题文档 <% String title = request.getParameter("title"); String kind=request.getParameter("kind"); String newtitle=title.replaceAll("'","''");//用replaceAll()将text字串中所有的单引号改成连续两个单引号
String text = request.getParameter("text"); //String text1=text.replaceAll("'","''");存clob时不需将单引号改成连续两个单引号 String text2=text.replaceAll("<","<");//用replaceAll()将字串中所有的<改成< String newtext=text2.replaceAll(">",">");//用replaceAll()将字串中所有的>改成> //replace只能处理单个字符!! //改'是为了不影响数据库的查询语句 //改<>是防止网页把他们生成标签,比如:
|
|