亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

一個Jsp初學者的學習過程(七)

2024-09-05 00:19:31
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

一個jsp初學者的學習過程(七)

theunforgiven


第七章 超長文本的操作——clob類型數據的存取

回到我編寫留言板的時候,當時要存放留言板的正文內容,發現varchar2()(可變長度的字符串)只能存4000字節,也就是2000個漢字,這也太少了啊,查一下數據庫類型的資料,發現有這么幾個類型:long,2g(要是我沒記錯的話,它是為了向前兼容,不推薦使用);clob,4g,字符;blob,4g,二進制??磥沓L文本應該使用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"%>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
</head>
<body>
<%
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("<","&lt");//用replaceall()將字串中所有的<改成&lt
string newtext=text2.replaceall(">","&gt");//用replaceall()將字串中所有的>改成&gt
//replace只能處理單個字符!!
//改'是為了不影響數據庫的查詢語句
//改<>是防止網頁把他們生成標簽,比如:<table>,<form>等
string author=session.getattribute("name").tostring();
out.println(author);
long id=system.currenttimemillis();//取得一個時間,從1970-1-1 0:00:00開始到當前時間的毫秒數,用這個數作為該文章的id標識
java.text.simpledateformat formatter = new java.text.simpledateformat("yyyy-mm-dd hh:mm:ss"); //格式化日期
java.util.date currenttime_1 = new java.util.date();//得到當前系統時間
string strdate = formatter.format(currenttime_1); //將日期時間轉換成字符串形式

connection con = null;
preparedstatement stmt = null;//不能用statement,我也不知道為什么,查了api,說這個preparedstatement可以用于
//高效的多次執行語句,沒查到statement這個類
resultset rs = null;
try
{
class.forname(classforname);//載入驅動程式類別
con=drivermanager.getconnection(servanddb);//建立數據庫連接
con.setautocommit(false);//設置不自動提交
string sql="insert into article(id,author,title,time,kind,text_clob) values ('"+id+"','"+author+"','"+newtitle+"','"+strdate+"','"+kind+"',empty_clob())";//我的數據庫中存文本的clob型字段名為:text_clob
stmt=con.preparestatement(sql);//添加一條clob字段為空的記錄,
stmt.executeupdate();//執行
stmt=null;//下次使用前清空
sql="select text_clob from article where id='"+id+"' for update";//正是由于這條語句,id這個標識就必須得唯一?。。?!
//如果數據庫中已有一條記錄的id與當前的id值相同,那么會查到那條記錄,也就無法向新插入的記錄中的clob字段進行寫入!
stmt=con.preparestatement(sql);//查找剛剛添加的那條記錄
rs=stmt.executequery();

oracle.sql.clob osc = null;//初始化一個空的clob對象
if (rs.next())
osc=(oracle.sql.clob)rs.getclob("text_clob");
writer w=osc.getcharacteroutputstream();//使用字符輸出流
w.write(newtext);//將字符串str_text寫到流中
w.flush();//輸出流中數據,大概是正式向clob中寫了
w.close();
con.commit();//執行
response.sendredirect("index.jsp?page=1");//回主頁面
}
catch(exception e)
{out.println(e);}
finally
{
if (rs!=null)
rs.close();
if (stmt!=null)
stmt.close();
if (con!=null)
con.close();
}
%>
</body>
</html>
--------------------------------------------------------------------------
取的時候就相對簡單了,主要就兩句,看下面的代碼:
--------------------------------------------------------------------------
<%
connection con = null;
statement stmt = null;
resultset rs = null;
long id=long.parselong(request.getparameter("id"));//將接收到的字符串轉成long型
try
{
class.forname(classforname);//載入驅動程式類別
con=drivermanager.getconnection(servanddb);//建立數據庫連接
stmt=con.createstatement();
string sql="select * from article where id='"+id+"'";
rs=stmt.executequery(sql);
if (rs.next())
{ //下2行是用于從clob類型里讀數據的,轉成字符串。
oracle.sql.clob osc=(oracle.sql.clob)rs.getclob("text_clob");//我的數據庫中存文本的clob型字段名為:text_clob
string str_text=osc.getsubstring((long)1,(int)osc.length());//substring是截取字符串(從1截到length),如果用 osc.getstring的話出錯。
out.print(str_text);
}//if
}//try
catch(exception e){}
rs.close();
stmt.close();
con.close();
%>
--------------------------------------------------------------------------
現在對clob類型的存取問題已經解決,但是當你操作文本字符串的時候你會發現很多問題,比如說,文本里有單引號(')、標簽(如<table>、<br>),還有回車和空格的問題等等,都需要你在實踐中發現并解決。
下一章說說blob。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人羞羞国产免费| 国产精品午夜一区二区欲梦| 欧美日韩在线视频一区| 久久久久久久久久亚洲| 久久精品欧美视频| 日韩av手机在线观看| 国产精品扒开腿爽爽爽视频| 日韩欧美第一页| 国产成人在线视频| 亚洲国产精品久久久久秋霞蜜臀| 中文.日本.精品| 欧美黄色片在线观看| 久久久99久久精品女同性| 亚洲影院色在线观看免费| 欧美视频不卡中文| 国产亚洲精品高潮| 欧美国产日韩一区| 国产啪精品视频| 亚洲视频网站在线观看| 中文字幕日韩精品在线观看| 日本欧美黄网站| 国产激情视频一区| 性欧美亚洲xxxx乳在线观看| 一区二区在线视频播放| 欧美在线播放视频| 亚洲女性裸体视频| 国产精品电影观看| 秋霞av国产精品一区| 日韩中文字幕网址| 成人精品一区二区三区| 久久777国产线看观看精品| 91久久国产精品91久久性色| 蜜臀久久99精品久久久久久宅男| 久久免费成人精品视频| 日韩精品中文在线观看| 热re91久久精品国99热蜜臀| 97欧美精品一区二区三区| 国产欧美精品一区二区三区介绍| 欧美高清无遮挡| 5566日本婷婷色中文字幕97| 国产一区二区三区在线观看网站| 亚洲一区二区三区在线免费观看| 精品久久香蕉国产线看观看gif| 欧美重口另类videos人妖| 在线看片第一页欧美| 国产亚洲a∨片在线观看| www.久久色.com| 国产精品高潮呻吟久久av野狼| 一区二区在线视频播放| 91免费精品视频| 亚洲人成网站777色婷婷| 国产精品一区二区三区免费视频| 91美女片黄在线观看游戏| 国产欧美一区二区三区在线| 国产精品成人aaaaa网站| 国产一区二区三区在线看| 亚洲国产一区自拍| 亚洲男人的天堂在线播放| 亚洲在线一区二区| 亚洲国产中文字幕在线观看| 97超级碰碰人国产在线观看| 91国产视频在线| 亚洲国产成人一区| 国产精品久久久久久久久久ktv| 91黑丝在线观看| 国产精品中文字幕在线| 日韩成人中文字幕| 奇米一区二区三区四区久久| 欧美丰满少妇xxxxx做受| 国产精品美乳在线观看| 色偷偷偷综合中文字幕;dd| 国产欧美精品在线播放| 国产日韩欧美夫妻视频在线观看| 欧美中文字幕视频在线观看| 九九精品视频在线观看| 欧美大尺度激情区在线播放| 色老头一区二区三区| 茄子视频成人在线| 欧美日韩国产综合视频在线观看中文| 青草青草久热精品视频在线网站| 亚洲黄色av网站| 欧美大片大片在线播放| 欧美极品少妇xxxxx| 午夜精品久久久99热福利| 亚洲毛片一区二区| 国产精品美女av| 日韩美女av在线| 韩国欧美亚洲国产| 欧美在线一区二区三区四| 国产精自产拍久久久久久蜜| 成人观看高清在线观看免费| 97久久超碰福利国产精品…| 中文字幕久久久| 欧美福利视频在线观看| 久久免费在线观看| 国产精品白丝av嫩草影院| 午夜精品久久久99热福利| 日韩久久精品电影| www.亚洲男人天堂| 亚洲色图欧美制服丝袜另类第一页| 亚洲最新视频在线| 免费不卡在线观看av| 亚洲伊人第一页| 国产日韩欧美在线视频观看| 国产精品∨欧美精品v日韩精品| 色系列之999| 亚洲欧美日本伦理| 亚洲欧美日韩精品| 91色在线观看| 欧美疯狂性受xxxxx另类| 国产999精品久久久影片官网| 日韩中文字幕国产| 亚洲色图第一页| 国产一区二区丝袜高跟鞋图片| 日韩欧美精品在线观看| 国产欧美精品一区二区三区-老狼| 亚洲精品国产精品国产自| 欧美精品videos| 久久国产精品免费视频| 国产精品美女主播在线观看纯欲| 国产视频观看一区| 欧美精品精品精品精品免费| 亚洲欧美日韩第一区| 欧美美女操人视频| 欧美成人精品不卡视频在线观看| 一区二区三区无码高清视频| 久久精品国产亚洲精品2020| 久久99久国产精品黄毛片入口| 中文字幕久精品免费视频| 日本19禁啪啪免费观看www| 亚洲国产免费av| 九九精品在线播放| 欧美xxxx14xxxxx性爽| 亚洲精品欧美日韩专区| 国产女人18毛片水18精品| 97在线视频精品| 一区二区三区亚洲| 日韩大陆毛片av| 日韩免费观看高清| 午夜精品在线视频| 91久久久久久久久| 日韩精品中文字幕视频在线| 日本精品久久久久影院| 一区二区三区四区在线观看视频| 久久久久女教师免费一区| 欧美精品成人91久久久久久久| 国产视频久久久| 深夜福利一区二区| 91午夜在线播放| 国模私拍视频一区| 国产成人久久久| 国内精品国产三级国产在线专| 91精品久久久久久久久不口人| 欧美大全免费观看电视剧大泉洋| 欧美日韩第一页| 亚洲加勒比久久88色综合| 午夜伦理精品一区| 69国产精品成人在线播放| 久久亚洲精品中文字幕冲田杏梨| 国产精品久久一区主播| 欧美大成色www永久网站婷| 欧美成人中文字幕在线| 69av在线播放| 欧美日韩亚洲激情|