sql >> Databasteknik >  >> RDS >> Mysql

Jag vill visa flera bilder från databasen till jsp (jag mappar servlet) så i jsp kommer jag att visa i src av img-taggen

Anta att du har en jsp-sida där du vill hämta bilden. Du kan göra något så här för att hämta vilken bild som helst från databasen.

 <% // 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){}

    %>

I koden ovan detta -> <img src="./Serv1?id=<%=resultSet.getString("id")%>" /> linje är viktig, här skickar du parameter dvs:id till servlet för att få en viss image

Nu i din servlet dvs ./Serv1 du måste hämta id i doGet och skicka in frågan, skicka till sist tillbaka svaret till jsp-sidan.

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();

         }

Detta är inte heller komplett kod, gör ändringar enligt dina krav. Glöm inte heller att lägga till jar's file

Hoppas det här hjälper!




  1. Byter namn på pluggbar databas

  2. Hur använder man bilder i Android SQLite som är större än begränsningarna för ett CursorWindow?

  3. Är det möjligt att anropa en MySQL-lagrad procedur från Ruby?

  4. Finns/finns inte:'välj 1' kontra 'välj fält'