sql >> データベース >  >> RDS >> Mysql

データベースからjsp(私はサーブレットをマッピングしています)に複数の画像を表示したいので、jspmではimgタグのsrcに表示します

    画像を取得したいjspページがあるとします。このようなことを実行して、データベースから任意の画像を取得できます。

     <% // dbconnection
              try {
                       Class.forName("com.mysql.jdbc.Driver");
                     java.sql.Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");
                      Statement statement = conn.createStatement() ;
           resultSet=statement.executeQuery("select * from product") ; 
                    %> 
        <!--this loop will get all images-->
           <% while(resultSet.next()){ %> 
        <!--I'm using id column of table,you can use any coulmn which is unique to all row-->
       Image - <img src="./Serv1?id=<%=resultSet.getString("id")%>" width="20%"/>
      < p>Product <%=r.getInt(1)%>: <%=r.getString(2)%></p>
    
        <% 
        }
        }catch(Exception e){}
    
        %>
    

    上記のコードでは、これ-> <img src="./Serv1?id=<%=resultSet.getString("id")%>" /> 行は重要です。ここではparameterを渡します つまり:id 特定のimageを取得するためにサーブレットに

    さて、servletで つまり、./Serv1 idを取得する必要があります doGetで クエリを渡し、最後に応答をjspページに送り返します。

    Blob image = null;
            byte[] imgData = null;
           String id= request.getParameter("id");//here you are getting id 
           int i;
           ResultSet rs =null;
    
     try {
    
                //loading drivers for mysql
               Class.forName("com.mysql.jdbc.Driver");
                 Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","");
    
    
             String sql = "SELECT prodimg FROM product where id=?"; //here pass that id in query to get particular image 
    
               PreparedStatement ps = con.prepareStatement(sql);
    
    
                   ps.setString(1, id);
                  rs = ps.executeQuery();    
     while (rs.next()) {
                      image = rs.getBlob("image");//getting image from database 
                      imgData = image.getBytes(1,(int)image.length()); //extra info about image
                    } 
    
    response.setContentType("image/gif");//setting response type
    
    
    
    OutputStream o = response.getOutputStream();
    
    o.write(imgData);//sending the image to jsp page 
    o.flush();
    o.close();
    
    
     }
        catch(Exception e)
             {
                 e.printStackTrace();
    
             }
    

    また、これは完全なコードではありません。要件に応じて変更を加えてください。また、jar's fileを追加することを忘れないでください。

    お役に立てれば!




    1. Rails4session.idは時々nil

    2. Mysqlデータベースを使用したSolr検索、データインポート用のユーティリティ

    3. より良い動的SQLのために避けるべき10のSP_EXECUTESQLの落とし穴

    4. Oracleは、タイムゾーン付きのTIMESTAMPをDATEに変換します