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

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類(3)

          隨筆檔案(6)

          文章分類(24)

          文章檔案(22)

          收藏夾(2)

          經常去的Blog

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

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 含山县| 明星| 五大连池市| 天峻县| 洛隆县| 安丘市| 鄂尔多斯市| 大宁县| 旅游| 铅山县| 曲沃县| 江津市| 洛川县| 遂川县| 沐川县| 尼玛县| 长阳| 沁源县| 漯河市| 洪湖市| 龙山县| 鄂州市| 灵宝市| 鲁山县| 肇源县| 泽库县| 鸡东县| 深泽县| 收藏| 恩平市| 连云港市| 天长市| 辉南县| 舒兰市| 甘洛县| 积石山| 固镇县| 托克托县| 大城县| 郧西县| 宾川县|