JSP初級教程之跟我學JSP(七)_JSP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:JSP初級教程之跟我學JSP(六)
      第六章 jsp 實現畫柱狀統計圖 這一節的內容是用jsp生成一個統計——統計一年內每個月完成的報修任務量。 Java里和畫圖有關的是java.awt包,由于我構想的圖只是由矩形組成,那么用到的方法也就這么幾個:fillRect,drawRect,setColor,setFont,drawString。

      第七章 “備注型”超長文本的操作——Clob類型數據的存取

      存放oracle留言板的正文內容,用VARCHAR2()是不行的,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"%>
      <!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("<","<");//用replaceAll()將字串中所有的<改成<
      String newtext=text2.replaceAll(">",">");//用replaceAll()將字串中所有的>改成>
      //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();

      分享:JSP初級教程之跟我學JSP(五)
      第五章 jsp 分頁功能的實現 經過上面的學習我漸漸熟悉了對 數據庫 的操作,留言板的功能也不斷的完善,隨著留言的增加信息的目錄越來越長了,現在需要實現一個分頁功能了,我嘗試自己解決這個問題。 1、我應該把它的關鍵部分封裝成一個bean,使它盡可能的能

      共2頁上一頁12下一頁
      來源:模板無憂//所屬分類:JSP教程/更新時間:2010-03-10
      相關JSP教程