使用ssh向sqlserver2005数据库中保存image类型的二进制图片
1.首先设计数据库表,其中photo、photo2字段均为image类型的。
2.建立实体bean对象,设置两个字段为byte[]如:private byte[] photo; private byte[] photo2;
3.建立hibernate与数据库的映射文件hbm.xml,其中photo、photo2字段的映射如下:
<property generated="never" lazy="false" name="photo" type="binary">
    <column name="photo"/>
   </property>
    <property generated="never" lazy="false" name="photo2" type="binary">
    <column name="photo2"/>
   </property>
4.建立前台上传选择文件的页面:
<form id="inputForm" action="./saveStudent.action" method="post" enctype="multipart/form-data">
<tr>  
                 <th class="tdtitle">上传图片:</th>
                 <td class="tdcell"><input type="file" id="file" name="file" value="浏览"/></td>  
             </tr>
             <tr>  
                 <th class="tdtitle">上传图片:</th>
                 <td class="tdcell"><input type="file" id="file2" name="file2" value="浏览"/></td>  
             </tr>
</form>
5.在后台action中创建File对象file,并写set、get方法。在save方法中作如下处理(将输入流转换为byte数组):
InputStream inputStream=null;
 inputStream = new FileInputStream(file);
 byte bytes[]=new byte[inputStream.available()];
 inputStream.read(bytes);
 inputStream.close();
 inputStream=new FileInputStream(file2);
 byte bytes2[]=new byte[inputStream.available()];
 inputStream.read(bytes2);
 inputStream.close();
 price.setPhoto(bytes);
 price.setPhoto2(bytes2);
在显示的函数中做如下处理:(从数据库中取得二进制数据,转换为输出流)
byte [] buf=null;
 if(pro.equals("1")){
 buf=list.get(0).getPhoto();
 }else{
 buf=list.get(0).getPhoto2();
 }
 response.setContentType("image/jpg");
 OutputStream outputStream=response.getOutputStream();
 outputStream.write(buf);
 outputStream.flush();
在显示的前台页面作如下处理:
<tr><td>图片1:</td><td><img src="<%=basePath %>getImageStudent.action?no=<s:property value="student.no"/>&&kind=1"/></td></tr>
  <tr><td>图片2:</td><td><img src="<%=basePath %>getImageStudent.action?no=<s:property value="student.no"/>&&kind=2"/></td></tr>
使用ssh向sqlserver2005数据库中保存image类型的二进制图片的更多相关文章
- 【Android Developers Training】 26. 在SQL数据库中保存数据
		注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ... 
- SQL查询数据库中所有指定类型的字段名称和所在的表名
		--查询数据库中所有指定类型的字段名称和所在的表名 --eg: 下面查的是当前数据库中 所有字段类型为 nvarchar(max) 的字段名和表名 SELECT cols.object_id , co ... 
- SQL server数据库中的DateTime类型出现的问题
		我们知道这个SQL server数据库中的DateTime类型是数据库应用开发中经经常使用到的一种数据类型.而C#语言中也有DateTime类型,尽管二者都是用来描写叙述时间的,可是它们的默认值是不同 ... 
- 【基础知识】C#数据库中主键类型的选择
		主键在数据库中占有很大的地位,对于表的关联性,和数据的唯一识别性有重要的作用: 1,在C#开发中,Int自增字段和Guid(数据库中是uniqueidentifier类型)可设置为主键: 1>G ... 
- 时间、金钱在java、数据库中的变量类型之总结
		在编写程序时,总是有些变量的类型搞不很明白,现将目前涉及到的变量总结一下: 1.“时间”类型 (1).在数据库中的变量类型是:DateTime 比如: operateTime DATETIME,//数 ... 
- [delphi]向ImageList中加入png类型的资源图片
		向ImageList中动态加入Png图片有些失真,经过多方查询,发现需要将Bitmap的AlphaFormat指定一下. //向ImageList中加入png类型的资源图片 procedure Add ... 
- Android - 数据存储 -在SQL数据库中保存数据
		对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ... 
- [原创]Java调用PageOffice在线打开数据库中保存的Word文件
		PageOffice产品和数据库是两个独立的概念,严格来说两者之间没有任何本质关系.PageOffice不依赖数据库而存在,但是数据库和PageOffice可以结合使用来完成某些复杂的业务逻辑.例如: ... 
- 向comboboxEdit中动态添加数据库中保存的用户自定义单位制的名称
		if (radioGroup1.SelectedIndex == 2) { bool _Flag = true; sm.SetLciVisible(lciDelete, _Flag); sm.SetL ... 
随机推荐
- java EE : tomacat 基础
			tomacat 目录结构 conf 配置文件 server.xml 
- js屏蔽手机的物理返回键
			$(document).ready(function() { if (window.history && window.history.pushState) { $(window).o ... 
- ceph笔记(一)
			一.ceph概述本质上是rados:可靠的.自动的.分布式对象存储特性:高效性(大型的网络raid,性能无限接近raid).统一性(支持文件存储.块存储.对象存储).可扩展性数据库的一个弱点:查表ce ... 
- Jquery 官网下载流程
			选中解压版本,然后把ctrl+s保存另存为他的min版本 
- CodeFoorces 803C Maximal GCD
			枚举. 枚举$gcd$,然后计算剩下的那个数能不能分成$k$个递增的数. #include <iostream> #include <cstdio> #include < ... 
- 洛谷P1503 鬼子进村 [平衡树,STL]
			题目传送门 鬼子进村 题目背景 小卡正在新家的客厅中看电视.电视里正在播放放了千八百次依旧重播的<亮剑>,剧中李云龙带领的独立团在一个县城遇到了一个鬼子小队,于是独立团与鬼子展开游击战. ... 
- Python之路【第六篇】:模块与包
			目录 一 模块 3.1 import 3.2 from ... import... 3.3 把模块当做脚本执行 3.4 模块搜索路径 3.5 编译python文件 3.6 标准模块 3.7 dir ... 
- java.io.BufferedWriter API 以及源码解读
			下面是java se 7 API 对于java.io.BufferedWriter 继承关系的描述. BufferedWriter可以将文本写入字符流.它会将字符缓存,目的是提高写入字符的效率. bu ... 
- Beaglebone Black开发板安装驱动
			Beaglebone Black开发板安装驱动 Beaglebone Black开发板安装驱动,在使用Beaglebone Black开发板子做任何事情之前首先需要安装驱动.下面的内容就了展示在Win ... 
- 20162304 实验一《Java开发环境的熟悉》实验报告
			Linux基础与Java开发环境 实验内容 1.熟悉Linux基础操作: 2.使用JDK编译.运行简单的Java程序: 实验要求 1.学习<Linux基础入门(新版)> 2.完成实验.撰写 ... 
