I'm using following code for reading images from database but when i call getter method of pb in h:datatable value to display images on jsf page i got the error "oracle.sql.BLOB cannot be cast to java.lang.String".Any idea please?
Java class is having pb property.
Java code for reading image:
public List<ImageBean> getPb() throws Exception { int i = 0; List<ImageBean> pb= new ArrayList<ImageBean>(); String url = "jdbc:oracle:thin:@localhost:1521:globldb3"; String username = "scott"; String password = "tiger"; Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection(url, username, password); String sql = "SELECT name,image FROM save_image"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet resultSet = pstmt.executeQuery(); while (resultSet.next()) { String n =resultSet.getString(1); File image = new File("D:\\java3.JPG"); FileOutputStream fos = new FileOutputStream(image); byte[] buffer = new byte[1]; InputStream is = resultSet.getBinaryStream(2); while (is.read(buffer) > 0) { fos.write(buffer); } pb.add(i,new ImageBean(n,resultSet.getBlob(2))); i++; fos.close(); } conn.close(); return pb;0 } JSF page:-
<h:dataTable styleClass="panelGridColums" value="#{tableBean.pb}" var="i" border="1" > <h:column> <f:facet name="header">Id</f:facet> <h:graphicImage value="#{i.pimage}" /> </h:column> </h:dataTable>