sql >> Database >  >> RDS >> Mysql

Ik wil meerdere afbeeldingen uit de database weergeven in jsp (ik breng servlet in kaart), dus in jsp m ga ik weergeven in src van img-tag

Stel dat u een jsp-pagina heeft waar u de afbeelding wilt ophalen. U kunt zoiets doen om elke afbeelding uit de database op te halen.

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

    %>

In bovenstaande code dit -> <img src="./Serv1?id=<%=resultSet.getString("id")%>" /> regel is belangrijk, hier geef je parameter door d.w.z.:id naar servlet om een ​​bepaalde image te krijgen

Nu, in je servlet bijv. ./Serv1 je moet de id . ophalen in doGet en geef de vraag door, stuur als laatste het antwoord terug naar de jsp-pagina.

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

         }

Dit is ook geen volledige code, breng wijzigingen aan volgens uw vereisten. Vergeet ook niet om jar's file toe te voegen

Ik hoop dat dit helpt!




  1. MySQL-zelfstudie:MySQL IN-instructie (geavanceerd)

  2. Mysql-transactie terugdraaien bij fout in update

  3. Waarom treedt er een fout op wanneer ik meerdere query's naar mysqli_query stuur?

  4. Codeigniter's insert_batch() met duizenden inserts heeft ontbrekende records