数据库存入了人员照片数据,查询人员信息table,并且显示照片列表,不知道java怎么处理多图从数据库读取显示。
如果 你 oracle 里面存放的 是图片的 字节流, 那这个例子 看能否帮到你!
用 一 servlet 传输:
注册到web.xml中,映射路径为/CreateImage,:
[code="java"]import java.io.*;
import java.awt.*;
import java.awt.image.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.sun.image.codec.jpeg.*;
public class CreateImageServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("image/jpeg");
createImage(response.getOutputStream());
}
private void createImage(OutputStream out) {
int width = 100;
int height = 100;
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
// set background:
g.setBackground(Color.BLUE);
g.clearRect(0, 0, width, height);
// set fore color:
g.setColor(Color.RED);
// start draw:
g.drawLine(0, 0, 99, 199);
// end draw:
g.dispose();
bi.flush();
// encode:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(1.0f, false);
encoder.setJPEGEncodeParam(param);
try {
encoder.encode(bi);
}
catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
前台显示
<html><head></head>
<body>
<img src="CreateImage">
</body></html>[/code]
要确定存入是是什么类型的?大对象?还是String
送个demo:
[code="java"]
String showImage = " select * "+
" from t_attachment "+
" where upload_id='1210832040218' " ;
BufferedInputStream inputImage = null;
try{
Statement st = conn.createStatement();
ResultSet rs=st.executeQuery(showImage);
String filename="";
while(rs.next()) {
Blob blob = (Blob)rs.getBlob("BINARYFILE");
filename=rs.getString("FILENAME");
inputImage = new BufferedInputStream(blob.getBinaryStream());
}
BufferedImage image = null;
image=ImageIO.read(inputImage);
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
inputImage.close();
} catch(SQLException se) {
se.printStackTrace();
} catch(IOException ie) {
ie.printStackTrace();
}
[/code]
之前 做过同样的案例,发给你 你look 一下.
表结构:
create table CONTACTS (
id number(19,0) not null,
name varchar2(24 char),
address varchar2(24 char),
gender varchar2(2 char),
birthday timestamp,
email varchar2(24 char),
mobile varchar2(24 char),
photo blob,
primary key (id)
);
Contact 实体类中 photo 变量 数据类型 定义为byte[]
创建 联系人 相关代码:
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
MultipartFile multFile = multiRequest.getFile("photo");
.......
[b]contact.setPhoto(multFile.getBytes());[/b] contactsService.save(contact);
页面显示 图像 相关代码:
@RequestMapping("/img")
[code="java"]public void getImg(@RequestParam("id")Integer id,HttpServletResponse response)throws IOException{
Contact contact = contactsService.getById(id);
OutputStream out=response.getOutputStream();
out.write(contact.getPhoto());
out.flush();
out.close();
}[/code]