/**
* 插入文件表数据
* @param tb_File
* @return
*/
public int fileAdd(final File file,final Tb_File tb_File){
// TODO Auto-generated method stub
String strMethod = "fileAdd";
logger.debug(strMethod + "Start.");
//插入文件表数据
StringBuffer INSERT_FILE_ADD=new StringBuffer();
INSERT_FILE_ADD.append(" INSERT INTO TB_FILE(ID,IMAGE,IMAGESUFFIX,NAME)VALUES(?,?,?,?) ");
int reFlag=2;//sql返回标记
try {
final InputStream is = new FileInputStream(file);
final LobHandler lobHandler=new DefaultLobHandler();
this.getJdbcTemplate().execute(new SQLProxy(INSERT_FILE_ADD.toString()).sql(),
new AbstractLobCreatingPreparedStatementCallback(lobHandler){
protected void setValues(
PreparedStatement pstmt,
LobCreator lobCreator)
throws SQLException,
DataAccessException {
// TODO Auto-generated method stub
pstmt.setString(1, tb_File.getId());
lobCreator.setBlobAsBinaryStream(pstmt,2,is,(int)file.length());
pstmt.setString(3, tb_File.getImagesuffix());
pstmt.setString(4, tb_File.getName());
}
});
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
reFlag=1;
logger.debug(strMethod + "End.");
return reFlag;
}
/**
* 获取文件列表
* @return
*/
public List<Tb_File> getTbFile() {
// TODO Auto-generated method stub
String strMethod = "getTbFile";
logger.debug(strMethod + "Start.");
StringBuffer QUERY_GET_TB_FILE=new StringBuffer();
QUERY_GET_TB_FILE.append(" SELECT ID,IMAGE,IMAGESUFFIX,NAME FROM TB_FILE ");
final List<Tb_File> list=new ArrayList<Tb_File>();
//读取图片
final LobHandler lobHandler=new DefaultLobHandler();
this.getJdbcTemplate().query(new SQLProxy(QUERY_GET_TB_FILE.toString()).sql(), new RowMapper() {
public Object mapRow(ResultSet rs, int i) throws SQLException {
Tb_File obj=new Tb_File();
String extenName=rs.getString(3);//获取扩展名
String myFileName="未知文件";//文件名
myFileName=attributeService.getFileSeq("p")+extenName;
String myFilePath=ServletActionContext.getServletContext().getRealPath("downloadtemp")//获取上传路径
+"/"+myFileName;
try {
OutputStream os = new FileOutputStream(new File(myFilePath));
try {
FileCopyUtils.copy(lobHandler.getBlobAsBinaryStream(rs,2),os);
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//写文件
obj.setId(rs.getString(1));
obj.setImagesuffix(rs.getString(3));
obj.setName(rs.getString(4));
obj.setImage("http://localhost:8090/houseInfo/downloadtemp/"+myFileName);
list.add(obj);
return list;
}
});
logger.debug(strMethod + "End.");
return list;
}