`

spring JdbcTemplate文件写数据库,读取

 
阅读更多
/**
	 * 插入文件表数据
	 * @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;
	}

 

分享到:
评论

相关推荐

    利用spring的jdbcTemplate处理blob、clob

    spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。

    数据库连接池druid,c3p0,jdbctemplate,jar包.rar

    数据库连接池jar包,包含c3p0、druidjar包和依赖jar包,c3p0通过配置文件xml或者properties读取连接对象 druid通过properties读取连接,使用springJDBC JdbcTempalte简化sql操作

    Web服务启动时自动加载Servlet,并读取数据库内容

    我操作数据库用的是spring的HibernateTemplate和JdbcTemplate,访问数据库是以bean注入的方式,在action里注入service的实现,读取数据库数据,其实现在的关键就是得到这个service的实例化对象,

    Spring中文帮助文档

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    Spring.3.x企业应用开发实战(完整版).part2

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    Spring3.x企业应用开发实战(完整版) part1

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...

    Spring 2.0 开发参考手册

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...

    SpringBoot 学习笔记+完整教程

    Spring boot(后续用*表示) hello...* 导入 spring XML 配置文件 * 热部署 * 监控和管理生产环境 * starter 详解 * 依赖的版本 * 文件上传 * 集成 redis 缓存 * 之 spring cache * 集成 EHCache * 分布式 Session 共享

    spring chm文档

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form...

    Spring API

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    Java Web程序设计教程

    4.2.3使用jdbc读取数据 69 4.3项目实战——存储图书信息 73 本章小结 78 课后练习 79 第5章struts2框架基础 80 5.1mvc框架 80 5.1.1model1与model2 80 5.1.2mvc设计模式 81 5.1.3struts2框架的mvc架构 82 ...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    ade 中通过 Spring 的 JdbcTemplate 操作数据库。最后,EmployeeMgmt 应用通过 Servlet 和 JSP 页面为用户提供前端界面: 图 2. EmployeeMgmt Web 界面 该界面为传统的 HTML 页面,用户每次点击某个链接都需要...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    对这个简单的应用,省略了 DAO,直接在 Façade 中通过 Spring 的 JdbcTemplate 操作数据库。最后,EmployeeMgmt 应用通过 Servlet 和 JSP 页面为用户提供前端界面: 图 2. EmployeeMgmt Web 界面 该界面为传统...

Global site tag (gtag.js) - Google Analytics