日期:2014-05-16 浏览次数:20636 次
/** * 插入文件表数据 * @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; }
?