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 閱讀(1501) 評論(0)  編輯  收藏 所屬分類: 數據庫技術

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類(3)

          隨筆檔案(6)

          文章分類(24)

          文章檔案(22)

          收藏夾(2)

          經常去的Blog

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

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 普定县| 金阳县| 宁都县| 南投县| 延安市| 桐庐县| 绵竹市| 建昌县| 获嘉县| 栾城县| 汪清县| 穆棱市| 石狮市| 淮南市| 通辽市| 连山| 阿合奇县| 同心县| 双牌县| 内乡县| 滦平县| 弥渡县| 信丰县| 耿马| 贵溪市| 鸡泽县| 揭西县| 南皮县| 石首市| 观塘区| 额尔古纳市| 安国市| 信阳市| 小金县| 玉树县| 堆龙德庆县| 二连浩特市| 岳阳县| 大竹县| 肇庆市| 宝丰县|