java oracle读取数据中的图片

数据库存入了人员照片数据,查询人员信息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]