spring JdbcTemplate文件写数据库,读取
/** * 插入文件表数据 * @param tb_File * @return */public int fileAdd(final File file,final Tb_File tb_File){// TODO Auto-generated method stubString 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 blocke.printStackTrace();} } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} reFlag=1;logger.debug(strMethod + "End.");return reFlag;}/** * 获取文件列表 * @return */public List<Tb_File> getTbFile() {// TODO Auto-generated method stubString 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 blocke.printStackTrace();} } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.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;}
?