posts - 6,  comments - 3,  trackbacks - 0

          在現在很多的應用中,數據庫會經常要存取一些大容量的數據,典型的代表:Blob,LongRaw
          本文主要介紹這兩種類型存取圖形的操作(jsp頁面的訪問)。

          一  Blob
              建立Table:

          CREATE TABLE PHOTO
          (
            PHOTO_NO  VARCHAR2(
          1)                         NOT NULL,
            IMAGE     BLOB
          )
           
            showimage.jsp
           
          <%
            
          /*
              從Oracle數據庫中讀取Blob的類型,並且在jsp頁面中顯示出來
            
          */

          %>
          <%@ page contentType="text/html; charset=BIG5" %>
          <%@ page import="java.io.*"%>
          <%@ page import="java.sql.*, javax.sql.*" %>
          <%@ page import="java.util.*"%>
          <%@ page import="java.math.*"%>

          <%
          String photo_no 
          = request.getParameter("photo_no");
          //
          out
          .print(photo_no);
           
           
          //Oracle連結

           Class.forName("oracle.jdbc.driver.OracleDriver");
           String url
          ="jdbc:oracle:thin:@IP:1521:SID"
          ;
           String userName
          ="user"
          ;
           String pwd
          ="pwd"
          ;
           Connection conn
          =
          DriverManager.getConnection(url,userName,pwd);
           

          try{
          Statement stmt 
          =
           conn.createStatement();

          String sql 
          = " SELECT * FROM PHOTO WHERE photo_no = "+
           photo_no;
          ResultSet rs 
          =
           stmt.executeQuery(sql);
          if (rs.next()) 
          {
          Blob b 
          = rs.getBlob("image"
          );
          long size =
           b.length();
          //out.print(size);

          byte[] bs = b.getBytes(1, (int)size);
          response.setContentType(
          "image/jpeg"
          ); 
          OutputStream outs 
          =
           response.getOutputStream(); 
          outs.write(bs);
          outs.flush();
          rs.close(); 
          }

          else {
          rs.close();

          }

          }

          finally{
          conn.close();
          }

          %>


          index.html
          <HTML>
          <HEAD>
          <TITLE>圖像測試</TITLE>

          </HEAD>

          <BODY>
          <TABLE>
          <TR>
          <TD>圖像測試</TD>
          </TR>
          <TR>
          <TD><img src="showimage.jsp?photo_no=1"></TD>
          </TR>
          </TABLE>

          </BODY>
          </HTML>

           二 LongRaw 
                 建立Table:
               
          CREATE TABLE PHOTO_2
          (
            PHOTO_NO  VARCHAR2(
          1)                         NOT NULL,
            IMAGE     LONG RAW
          )

           showimage.jsp
           
          <%
            
          /*
              從Oracle數據庫中讀取LongRaw的類型,並且在jsp頁面中顯示出來
            
          */

          %>
          <%@ page contentType="text/html; charset=BIG5" %>
          <%@ page import="java.io.*"%>
          <%@ page import="java.sql.*, javax.sql.*" %>
          <%@ page import="java.util.*"%>
          <%@ page import="java.math.*"%>

          <%
          String photo_no 
          = request.getParameter("photo_no");
          out
          .print(photo_no);
           
           
          //Oracle連結

           Class.forName("oracle.jdbc.driver.OracleDriver");
           String url
          ="jdbc:oracle:thin:@IP:1521:SID"
          ;
           String userName
          ="user"
          ;
           String pwd
          ="pwd"
          ;
           Connection conn
          =
          DriverManager.getConnection(url,userName,pwd);
           

          try{
          Statement stmt 
          =
           conn.createStatement();

          String sql 
          = " SELECT * FROM PHOTO_2 WHERE photo_no = "+
           photo_no;
          ResultSet rs 
          =
           stmt.executeQuery(sql);
          if (rs.next()) 
          {
          byte bs[]=rs.getBytes("image"
          );
          response.setContentType(
          "image/jpeg"
          ); 
          OutputStream outs 
          =
           response.getOutputStream(); 
          outs.write(bs);
          outs.flush();
          rs.close(); 
          }

          else {
          rs.close();

          }

          }

          finally{
          conn.close();
          }

          %>


            PS:這樣的訪問必須要保證這些Blog或LongRaw類型的字段中存儲的是圖片文件。
          posted on 2005-08-17 13:13 Java&Inter 閱讀(1495) 評論(0)  編輯  收藏 所屬分類: 數據庫技術

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆分類(3)

          隨筆檔案(6)

          文章分類(24)

          文章檔案(22)

          收藏夾(2)

          經常去的Blog

          • Eclipse/GEF
          • 關于Eclipse插件(plugins)開發的心得,主要包括:SWT/JFACE/GEF/EMF/RCP

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 邢台市| 婺源县| 平谷区| 安西县| 柘荣县| 元氏县| 苍溪县| 延长县| 西乌珠穆沁旗| 黄大仙区| 伊吾县| 朝阳市| 方正县| 茶陵县| 伊金霍洛旗| 浠水县| 喜德县| 江北区| 新干县| 崇明县| 公安县| 河曲县| 娱乐| 赤峰市| 手游| 剑河县| 恩平市| 商水县| 霍林郭勒市| 大同市| 恭城| 潼南县| 墨江| 句容市| 丰镇市| 平阳县| 枝江市| 甘洛县| 花莲市| 安徽省| 新宁县|