2016-11-30 52 views
-1

我有一個2類。一個叫Frame,另一個叫FrameDAOImpl。將結果集中的字節[]轉換爲javax.servlet.http.Part的一部分

Frame.java

private Part image; 
//setter and getter 
public Part getImage() { 
    return image; 
} 

public void setImage(Part image) { 
    this.image = image; 
} 

FrameDAOImpl.java

public List<Frame> getAll() throws SQLException { 
     List<Frame> list = new ArrayList<>(); 
     Connection connection = DBUtility.getConnection(); 
     PreparedStatement ps = null; 
     try { 
      String SQL = "select product_id, name, description, price_per_sqft, image,material from product where isFrame = 1"; 
      ps = connection.prepareStatement(SQL); 

      //get product data from database 
      ResultSet result = ps.executeQuery(); 
      while (result.next()) { 
       Frame frame = new Frame(); 

       frame.setProduct_id(result.getInt("product_id")); 
       frame.setName(result.getString("name")); 
       frame.setDescription(result.getString("description")); 
       frame.setPrice_per_sqft(result.getDouble("price_per_sqft")); 
       frame.setImage(result.getBytes("image")); //getting an error here 
       frame.setMaterial(result.getString("material")); 

       //store all data into a List 
       list.add(frame); 
      } 
     }catch(...){ 
      ........ 
     } 
} 

我得到它說incompatible types:byte[] cannot be converted to Part一個錯誤,我知道這是因爲數據類型不匹配的。 result.getBytes()returns bytes[]和我的setImage(Part image)需要一個Part對象。

所以我試着做frame.setImage((Part)result.getBytes("image"));但程序運行時仍然出錯。

什麼是我可以鑄造bytes[]Part的正確方法,以便我可以使用我的setImage(Part image)方法?

這可能嗎?

我會很感激任何建議或幫助。

感謝。

+1

那不是如何鑄造的作品。 – shmosel

+0

@ScaryWombat'javax.servlet.http.Part' – shmosel

+0

@ScaryWombat這就是javadoc所說的。 – shmosel

回答

-1

您可以使用google http client來實現此目的。

import com.google.api.client.http.ByteArrayContent; 
import com.google.api.client.http.MultipartContent; 
import com.google.api.client.http.MultipartContent.Part; 


public class PartTest { 
    public static void main(String[] arg){ 
     Part part = new MultipartContent.Part(
       new ByteArrayContent(null, "your data is in here".getBytes())); 
    } 

}