使用的是IBATIS持久層框架。。。
public String queryBlobVal() {
template = sqlMapClientTemplateFactory.getTemplate(DataType.SIGN);
if (StringUtils.isNotEmpty(schemaType)) {
if (schemaType.equals("CZ")) {
model.setSchema(dataSourceManager.getCzSchema());
} else {
model.setSchema(dataSourceManager.getQzSchema());
}
}
//要查詢的表和字段,查詢時使用IBATIS持久層框架
if (StringUtils.isNotEmpty(tableName) && StringUtils.isNotEmpty(columnName)) {
Map map = (Map) template.queryForObject(SQL_BLOBVAL_ID, model);
Blob blob = (Blob) map.get("BLOBVAL");
InputStream in = null;
try {
if (blob != null && blob.length() > 0) {
in = blob.getBinaryStream();
int byteCount = 0;
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = in.read(buffer)) != -1) {
getResponse().getOutputStream().write(buffer, 0, bytesRead);
if (model.getColumnType().equalsIgnoreCase("WORD")) {
getResponse().setContentType("application/msword");
getResponse().setContentType("application/x-download");
getResponse().addHeader("Content-Disposition",
"attachment;filename=\"" + model.getStationId() + "_" + model.getColumnName() + ".doc\"");
} else {
getResponse().setContentType("image/jpeg");
}
byteCount += bytesRead;
}
} else {
render(getResponse(), "暫無數據", "text/html");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}