- 浏览: 828404 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
renzhengzhi:
请教一下楼主,公有云和私有云的开发,具体要做哪些工作呢?我拿到 ...
4,云的4 种模式 -
SangBillLee:
我用了solr5.5,用SolrQuery查询,没法高亮,不知 ...
solr5.x快速入门 -
lw900925:
这翻译读起来真是别扭。
solr in action翻译-第一章1.1 -
springjpa_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
Spring MVC性能提升 -
h416373073:
正遇到了此问题不知如何解决, 多谢分享
solr错误
以下为Hibernate Blob数据类型映射的一个例子,通过例子来把握Hibernate Blob数据类型映射。
说明:BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。
以MySQL数据库为例,有四种BLOB类型
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
实际使用中根据需要存入的数据大小定义不同的BLOB类型。
需要注意的是:如果你存储的文件过大,数据库的性能会下降很多。
Serviceinfo.hbm.xml
测试代码
testCreate将getWeather.wsdl文件写入blob字段
testRerieve从blob字段中读取到出来,写到一个文件中
这么理解输入输出流,读入流自然要有读入的源头,输出也要输出到某个地方,输出一般是先要输读入,这里连接输入和输出的是一个在内存中的字节数组 buffer.这样从数据库中读到这个数组里,输出流在从这个数组中输出到特定的文件格式里。以上便是Hibernate Blob数据类型映射的一个例子。
说明:BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。
以MySQL数据库为例,有四种BLOB类型
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
实际使用中根据需要存入的数据大小定义不同的BLOB类型。
需要注意的是:如果你存储的文件过大,数据库的性能会下降很多。
public class Serviceinfo implements java.io.Serializable { private Integer sid; private String serviceName; private Blob wsdl; public Serviceinfo() {} public Integer getSid() { return this.sid; } public void setSid(Integer sid) { this.sid = sid; } public String getServiceName() { return this.serviceName; } public void setServiceName(String serviceName) { this.serviceName = serviceName; } public Blob getWsdl() { return wsdl; } public void setWsdl(Blob wsdl) { this.wsdl = wsdl; } }
Serviceinfo.hbm.xml
<hibernate-mapping> <class name="cn.edu.tju.ikse.sn.bean.Serviceinfo" table="serviceinfo" catalog="sn"> <id name="sid" type="integer"> <column name="sid" /> <generator class="increment" /> </id> <property name="serviceName" type="string"> <column name="service_name" length="256" /> </property> <property name="wsdl" type="blob"> <column name="wsdl" /> </property> </class> </hibernate-mapping>
测试代码
testCreate将getWeather.wsdl文件写入blob字段
testRerieve从blob字段中读取到出来,写到一个文件中
public void testCreate(){ Serviceinfo s= new Serviceinfo(); s.setName("getWeather"); Blob wsdl= null; try { //将wsdl文件读进输入流 FileInputStream fis = new FileInputStream("c:\\getWeather.wsdl"); //转成Blob类型 photo = Hibernate.createBlob(fis); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } s.setWsdl(wsdl); Session session = HibernateSessionFactory.getSession(); Transaction tr = session.beginTransaction(); session.save(s); tr.commit(); session.close(); }
public void testRerieve { Session session = HibernateSessionFactory.getSession(); Serviceinfo s = (Serviceinfo) session.load(Serviceinfo.class, new Integer(1)); try { // 从数据库中要读取出来 InputStream is = s.getWsdl().getBinaryStream(); // 在把写到一个txt的文件里 FileOutputStream fos = new FileOutputStream("c:\\wsdl.txt"); byte[] buffer = new byte[1024]; int len = 0; // 从数据库中读取到指定的字节数组中 while ((len = is.read(buffer)) != -1) { // 从指定的数组中读取,然后输出来, // 所以这里buffer好象是连接inputStream和outputStream的一个东西 fos.write(buffer, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } session.close(); }
这么理解输入输出流,读入流自然要有读入的源头,输出也要输出到某个地方,输出一般是先要输读入,这里连接输入和输出的是一个在内存中的字节数组 buffer.这样从数据库中读到这个数组里,输出流在从这个数组中输出到特定的文件格式里。以上便是Hibernate Blob数据类型映射的一个例子。
发表评论
-
java实现分治法
2014-01-10 15:58 2599在计算机科学 ... -
log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
2013-12-19 10:25 7596log4j.appender.stdout.layout.C ... -
数据结构5
2013-12-14 16:20 769串的抽象数据类型定义 ADT String{ 数据对象: ... -
数据结构4
2013-12-14 16:19 801栈类型的实现 顺序栈 链栈 顺序栈 类似于线性 ... -
数据结构3
2013-12-09 10:11 635栈和队列 1,栈的类型定义 ADT S ... -
数据结构2
2013-12-09 10:09 530线性表 线性结构是一个数据元素的有 ... -
数据结构1
2013-12-09 10:07 849,1、数据结果讨论的范畴 算法+数据结构=程序 程序设计 ... -
AtomicInteger简介
2013-10-12 10:40 938这个类真的非常实用,更重要的是 它确实非常简单: 附上自己 ... -
Java获取当前路径
2013-09-04 11:02 7531、利用System.getProperty()函数获取当前 ... -
ReentrantLock
2012-12-15 20:15 986ReentrantLock 的lock机制有2种,忽略中断锁和 ... -
ResourceBundle和Properties
2012-12-15 20:12 1018一般来说,ResourceBundle类通常是用于针对不同的语 ... -
java CopyOnWriteArrayList的使用
2012-12-14 10:38 3795除了加锁外,其实还有一种方式可以防止并发修改异常,这就 ... -
Java并发编程之ConcurrentHashMap
2012-12-13 21:00 816ConcurrentHashMap ConcurrentHa ... -
getResource()和getResourceAsStream以及路径问题
2012-12-07 11:29 789用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还 ... -
关于List的add方法与addAll方法的区别
2012-02-16 17:41 1589add是将传入的参数作为当前List中的一个Item存储,即使 ... -
java.lang.OutOfMemoryError: Java heap space 解决方法
2012-02-16 17:00 1033java.lang.OutOfMemoryError: J ... -
java中有两种包的导入机制
2012-01-08 11:26 1299java中有两种包的导入机制,总结如下: 单类型导入(s ... -
jsp中文件下载的实现
2011-11-02 09:12 840jsp中实现文件下载的最简单的方式是在网页上做超级链接,如:& ... -
如何做软件需求分析(个人工作经验总结)
2011-07-13 14:11 6180目录 : 前言: ... -
提供精确的小数位四舍五入处理
2011-07-08 14:52 1372提供精确的小数位四舍五入处理,这个工具类很实用! /* ...
相关推荐
11.3 操纵Blob和Clob类型数据 11.4 小结 11.5 思考题 第12章 映射继承关系 12.1 继承关系树的每个具体类对应一个表 12.1.1 创建映射文件 12.1.2 操纵持久化对象 12.2 继承关系树的根类对应一个表 ...
11.3 操纵Blob和Clob类型数据 11.4 小结 11.5 思考题 第12章 映射继承关系 12.1 继承关系树的每个具体类对应一个表 12.1.1 创建映射文件 12.1.2 操纵持久化对象 12.2 继承关系树的根类对应一个表 ...
11.3 操纵Blob和Clob类型数据 11.4 小结 11.5 思考题 第12章 映射继承关系 12.1 继承关系树的每个具体类对应一个表 12.1.1 创建映射文件 12.1.2 操纵持久化对象 12.2 继承关系树的根类对应一个表 ...
11.3 操纵Blob和Clob类型数据 11.4 小结 11.5 思考题 第12章 映射继承关系 12.1 继承关系树的每个具体类对应一个表 12.1.1 创建映射文件 12.1.2 操纵持久化对象 12.2 继承关系树的根类对应一个表 ...
fileContent字段映射为Spring所提供的BlobByteArrayType类型,BlobByteArrayType是用户自定义的数据类型,它实现了Hibernate 的org.hibernate.usertype.UserType接口。BlobByteArrayType使用从sessionFactory获取...
在dbking中,所有的数据库数据只有五种数据类型,String、Number(BigDecimal)、Timestamp、Clob(String)、Blob(byte[]),经过反复测试后,我们会例出各种数据库数据类型到这五种类型的映射表,当然我们也有...
基本Java数据类型 50 变量声明和赋值 52 引用(Reference)类型 52 存储器分配和布局 53 this引用 55 Java编码约定 56 运算符的优先级 58 升级和表达式的类型转换 62 独立实践 70 第五章:数组 71 学习目标 71 数组...
11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式读取Lob数据 11.3.5 以流数据方式读取Lob数据 11.4 自增键和行集 11.4.1 自增键的...
11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式读取Lob数据 11.3.5 以流数据方式读取Lob数据 11.4 自增键和行集 11.4.1 自增键的...
2.8.1.3 操作BLOB数据 21 2.8.2 实现Sequence主键生成策略 21 2.9 如何清除Hibernate Session中的对象 22 2.10 使用日期控件 22 2.11 如何引入外部文件 23 2.11.1 主页面采用include方式,引入各个子页面jsp文件 23 ...
11.1.5 映射Blob字段 134 11.1.6 定义非持久化属性 135 11.2 深入理解Domain间的关系 136 11.2.1 一对一关系 136 11.2.2 一对多关系 137 11.2.3 多对多关系 139 11.2.4 继承关系 141 11.2.5 合成关系 143 11.3 ...
处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 ...
处理BLOB 和 CLOB对象 11.7.3. 在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 ...
用play.db.jpa.Blob存储上传文件 - 74 - 强制保存 - 75 - 更多公共类型generic typing问题 - 77 - 08.Play.libs库包 - 78 - 用XPath解析XML - 78 - Web Service client - 79 - Functional programming with Java功能...
用play.db.jpa.Blob存储上传文件 - 74 - 强制保存 - 75 - 更多公共类型generic typing问题 - 77 - 08.Play.libs库包 - 78 - 用XPath解析XML - 78 - Web Service client - 79 - Functional programming with Java功能...