- 浏览: 187973 次
- 性别:
- 来自: 青岛
-
文章分类
- 全部博客 (117)
- java基础知识 (17)
- 技术积攒 (9)
- Oracle技术 (4)
- JSP技术 (6)
- Spring技术 (15)
- Linux技术 (6)
- Hibernate技术 (24)
- JPA技术 (1)
- Struts技术 (1)
- Struts2技术 (6)
- javascript知识 (4)
- myeclipse 使用技巧 (3)
- JavaEE技术 (2)
- JSTL (1)
- javamail技术 (1)
- jaf 技术 (1)
- 测试方法 (1)
- web技术积攒 (1)
- tomcat事项 (5)
- mysql使用 (1)
- 趣味题目 (2)
- 技术词汇 (1)
- EJB3.0 (2)
- weblogic 使用说明 (1)
- CSS (1)
最新评论
-
chenhao_java:
知识点五:依赖注入-自动装配依赖对象 -
黑白配:
为什么没有看见三个附件呢?
JavaMail jsp发送邮件 html格式 -
chunchong:
真晕,这样怎么能行呢
JAVA中防止SQL注入攻击类的源代码 -
Rod_johnson:
学习了!真不错
Hibernate:类继承的实现方式(二)--父子类各自一个表 -
erchong2011:
恩 很不错 学习了 简单
jsp页面自动跳转方式
java 代码
14xml 代码
36
37两个测试方法:
38
39java 代码
这么理解输入输出流
读入流,自然要有读入的源头,
输出也要输出到某个地方,输出一般是先要输读入,
这里连接输入和输出的是一个在内存中的字节数组buffer.这样从数据库中读到这个数组里,输出流在从这个数组中输出到特定的文件格式里.
2public class User implements java.io.Serializable { 3 4 5 // Fields 6 7 private long id; 8 private String name; 9 private String email; 10 private String addr; 11 //定义Blob的pthto 12 private Blob photo;13
14xml 代码
15<hibernate-mapping> 16 <class name="org.tie.User" table="user" catalog="tie"> 17 <id name="id" type="long"> 18 <column name="id" /> 19 <generator class="identity" /> 20 </id> 21 <property name="name" type="string"> 22 <column name="name" length="45" not-null="true" /> 23 </property> 24 <property name="email" type="string"> 25 <column name="email" length="45" /> 26 </property> 27 <property name="addr" type="string"> 28 <column name="addr" length="45" /> 29 </property> 30 <!-- 映射blob类型 --> [color=red]31 <property name="photo" type="blob"> [/color] 32 <column name="photo" /> 33 </property> 34 </class> 35</hibernate-mapping>
36
37两个测试方法:
38
39java 代码
40public void testCreate(){ 41 42 User user = new User(); 43 user.setName("linweiyang"); 44 user.setAddr("beijing"); 45 user.setEmail("linweiyang@163.com"); 46 Blob photo = null; 47 48 try { 49 //将图片读进输入流 50 FileInputStream fis = new FileInputStream("c:\\a.jpg"); 51 //转成Blob类型 52 photo = Hibernate.createBlob(fis); 53 54 } catch (FileNotFoundException e) { 55 e.printStackTrace(); 56 } catch (IOException e) { 57 e.printStackTrace(); 58 } 59 60 user.setPhoto(photo); 61 62 Session session = factory.openSession(); 63 Transaction tr = session.beginTransaction(); 64 session.save(user); 65 tr.commit(); 66 session.close(); 67 68 } 69 70 public void testRerieve(){ 71 72 Session session = factory.openSession(); 73 User user = (User)session.load(User.class, new Long(3)); 74 try { 75 //从数据库中要读取出来 76 InputStream is = user.getPhoto().getBinaryStream(); 77 //在把写到一个图片格式的文件里 78 FileOutputStream fos = new FileOutputStream("c:\\linweihan.jpg"); 79 80 byte[] buffer = new byte[1024]; 81 int len = 0; 82 //从数据库中读取到指定的字节数组中 83 while((len = is.read(buffer) )!= -1){ 84 //从指定的数组中读取,然后输出来,所以这里buffer好象是连接inputStream和outputStream的一个东西 85 fos.write(buffer,0,len); 86 } 87 } catch (FileNotFoundException e) { 88 e.printStackTrace(); 89 } catch (SQLException e) { 90 e.printStackTrace(); 91 } catch (IOException e){ 92 e.printStackTrace(); 93 } 94 session.close(); 95 }
这么理解输入输出流
读入流,自然要有读入的源头,
输出也要输出到某个地方,输出一般是先要输读入,
这里连接输入和输出的是一个在内存中的字节数组buffer.这样从数据库中读到这个数组里,输出流在从这个数组中输出到特定的文件格式里.
发表评论
-
关于Hibernate一个配置参数hibernate.hbm2ddl.auto
2010-03-02 08:43 1168<?xml version="1.0" ... -
Hibernate 复合主键
2009-09-25 09:13 1588[zt]hibernate复合主键 key words:hi ... -
映射文件class元素的dymanic-insert和dymanic-update的作用
2009-06-05 09:36 945SQL update语句是预先生成的,如果加上dynamic的 ... -
hibernate的各种保存方式的区别
2009-06-05 08:59 690hibernate的保存 hibernate对于对象的保存提供 ... -
Hibernate:缓存设置
2009-06-04 16:38 1042缓存是介于应用程序 ... -
one-to-many的懒加载及原理分析
2009-06-04 14:42 933如果是一对多,多对一,甚至是多对多那效率就差别大了!!如果一对 ... -
one-to-one的懒加载及原理分析
2009-06-04 13:57 1052Lazy=”” :告诉hibernate什么时候抓取 1 fa ... -
load方法的懒加载及原理分析
2009-06-04 11:09 1841懒加载: load方法与get ... -
Hibernate:类继承的实现方式(四)--每个具体类映射一张独立表
2009-06-04 10:58 1045这种方式会把继承链的所有类保持到数据库中单独的表中,而且标语表 ... -
Hibernate:类继承的实现方式(三)--鉴别器与内连接相结合
2009-06-04 10:49 1135当子类中有的有很多自己特有的属性,而部分子类有较少的自己的属性 ... -
Hibernate:类继承的实现方式(二)--父子类各自一个表
2009-06-04 10:41 1418将继承链中的各个类映射到数据库中的一个单独的表中 domai ... -
Hibernate:类继承的实现方式(一)--父子类在同一个表中
2009-06-04 10:19 1929Hibernate对继承关系的对象的处理分为多种形式: 第一 ... -
cascade和inverse
2009-06-04 09:10 1397Cascade与inverse这两个属性都用于一对多或者多对多 ... -
关联关系的级联操作
2009-06-03 17:17 878Cascade和inverse (Employee-Depar ... -
POJO对象与映射文件 : 集合映射
2009-06-03 15:36 1263集合属性大致有两种:第一种是单纯的集合属性,如像 List、S ... -
关联关系的总结
2009-06-03 14:50 802查询的时候出现sql语句的条数: Hibernate查询输出 ... -
将一个对象(组件)作为属性,但是不想建立这个表
2009-06-03 14:38 844如果对象的某个属性为一个对象,而且不想单独对该对象建立一个表, ... -
Hibernate:多对多
2009-06-03 14:10 1077Hibernate处理多对多的情况,在操作和性能方面都不太理想 ... -
Hibernate:一对一(2)
2009-06-03 11:11 816Hibernate处理一对一的另外一种方式是:将多对一加上唯一 ... -
Hibernate:多对一
2009-06-03 11:05 923Hibernate对多对一有两种,分为单向和双向。一般都是采用 ...
相关推荐
在 Java 应用开发中,尤其是使用 ORM 框架如 Hibernate 进行持久化层开发时,如何高效地处理 BLOB 类型字段成为了一个关键问题。 本文档将详细介绍如何使用 Hibernate 对 Blob 类型字段进行数据添加的过程,并通过...
`@Lob`注解告诉Hibernate这是一个Blob类型的字段,它会自动处理数据库的映射。 ### 2. JDBC Blob操作 在不使用Hibernate的情况下,可以通过JDBC直接操作Blob。首先,你需要获取到PreparedStatement,然后通过`...
为了写入BLOB数据,首先需要创建一个空的BLOB实例,然后获取这个BLOB的游标,最后才能真正地向其中写入数据。 #### 2. 使用JDBC写入BLOB 使用JDBC处理Oracle BLOB主要涉及以下步骤: - **注册驱动并建立连接**:...
总结来说,无论是通过JDBC还是Hibernate,写入Oracle数据库的Blob字段都需要先创建一个空Blob,然后获取其cursor,最后将二进制数据写入Blob。在JDBC中,这个过程涉及多个SQL语句和流操作;而在Hibernate中,通过ORM...
在Hibernate的映射文件(.hbm.xml)中,我们需要为Blob字段定义一个对应的元素。例如,假设我们有一个`Image`实体类,其中包含一个`imageData`字段用于存储Blob类型的图像数据,映射文件的部分内容可能如下所示: ...
Hibernate是一个开源的对象关系映射(ORM)框架,它对JDBC进行了封装,让Java开发者能够以面向对象的方式操作关系数据库。Hibernate的主要特性包括: 1. 轻量级封装:Hibernate封装了JDBC的复杂性,使得开发者能够...
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)数据类型被用来存储大量二进制数据,如图片、音频、视频或者大型文本文件。本文将深入探讨Hibernate如何读取BLOB类型的数据,以及在实际开发中需要注意...
Hibernate作为一款流行的Java持久层框架,它提供了丰富的数据类型映射功能,使得开发者能够更加灵活地在Java对象和关系型数据库之间进行转换。下面将详细介绍Hibernate中的各种基本数据类型及其在不同数据库中的映射...
以`Users.hbm.xml`为例,假设我们有一个`Users`实体类,其中有一个`profileImage`字段作为BLOB类型,一个`bio`字段作为CLOB类型,映射可能会这样写: ```xml <hibernate-mapping> <!-- 其他字段 --> ...
在Java的持久化框架Hibernate中,处理大数据类型如Clob(Character Large Object)和Blob(Binary Large Object)是常见的需求,这些数据类型通常用于存储大量的文本或二进制数据。Oracle数据库提供了支持Clob和Blob...
这里,我们提到了一个名为“Hibernate的映射类型_hibernate_mysql映射类型.doc”的文档,这很可能是一个详细的对照表,列出了Hibernate如何将Java数据类型映射到MySQL数据库的SQL数据类型。MySQL是世界上最流行的...
2. **Hibernate中的Clob和Blob映射**: - 在Hibernate的实体类中,我们需要为Clob和Blob字段定义对应的属性,并使用`@Lob`注解来标记它们。例如: ```java @Lob private Clob largeText; @Lob private Blob ...
在Java的持久化框架Hibernate中,Blob和Clob对象是用来处理大数据类型的,它们分别对应数据库中的BLOB(Binary Large Object)和CLOB(Character Large Object)。这篇文章将详细讲解如何在Hibernate中保存这两种...
hibernate Blob、Clob字段的映射的例子.数据库mysql,数据库放在文件夹里面,例子的说明文章在我的csdn blog: http://blog.csdn.net/zhengcandan
例如,使用注解时,可以这样定义一个实体类的属性: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "name", length = 50)...
在Java Web开发中,Hibernate是一个流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。Blob和Clob是Java中用于处理大数据类型的数据对象,Blob用于存储二进制大对象,如图片、音频或视频...
二进制数据类型如图片、文件等可以使用`binary`,它映射为`VARBINARY`或`BLOB`;`text`对应长文本,映射为`CLOB`;`serializable`用于序列化Java对象,映射为`VARBINARY`(或`BLOB`);`clob`和`blob`直接对应数据库...