Mysql
 sql >> база данни >  >> RDS >> Mysql

Искам да покажа множество изображения от базата данни в jsp (аз картографирам сървлет), така че в jsp m ще се покаже в src на етикета img

Да предположим, че имате 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 и предайте query , накрая изпратете обратно отговора на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да заявя soundex() в mysql

  2. Как да мигрирам MySQL директория с данни в Docker контейнер?

  3. Как да премахнете auto_increment от таблица на mysql

  4. Подредената входна стойност вмъква празен запис в mysql

  5. MySQL - Как да вмъкнете в множество таблици с външни ключове