Java图片/文件下载+Hibernate+Oracle数据库Blob字段类型

@RequestMapping(value = "files.action")
public void files(HttpServletRequest request, HttpServletResponse response) {
	try {
		String faId = request.getParameter("id");
		GzryFjxx fjxx = gzryFjxxServ.getByFaId(faId);
		Blob img = fjxx.getTp();
		long size = img.length();
		byte[] b = img.getBytes(1, (int) size);
		if (b.length > 0) {
			for (int i = 0; i < b.length; i++) {
				if (b[i] < 0) {
					b[i] += 256;
				}
			}
			String filename = java.net.URLEncoder.encode(fjxx.getText(),"UTF-8");
			response.addHeader("Content-Disposition","attachment;filename=" + filename);
			response.addHeader("Content-Transfer-Encoding", "binary");
			response.setContentType("image/jpg");//MIME类型			
                                OutputStream outs = response.getOutputStream();
			outs.write(b);
			outs.flush();
			outs.close();
		}
	} catch (Exception e) {
		System.out.println(e);
	}
}

//Hibernate实体类:
import java.sql.Blob;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "T_GZRY_FJXX")
public class GzryFjxx {

	private String id;
	private Blob tp;
	private String text;
	
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	@Column(name = "TP")
	public Blob getTp() {
		return tp;
	}

	public void setTp(Blob tp) {
		this.tp = tp;
	}

	@Column(name = "TEXT", length = 200)
	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}	

}

你可能感兴趣的:(java)