- 浏览: 567906 次
文章分类
- 全部博客 (235)
- 数据库 (12)
- j2se (10)
- JQuery (2)
- 经验总结 (4)
- 防毒 (1)
- Struts (20)
- Spring (12)
- 项目 (3)
- 电脑维修项目 (1)
- Eclipse (2)
- JSP (13)
- mysql (5)
- Hibernate (54)
- ssh (1)
- 学习网站 (1)
- tomcat (9)
- servlet (24)
- java语言基础 (1)
- jbpm (1)
- linux (0)
- 技巧积累 (1)
- javaBean (2)
- 设计模式 (2)
- 实用的操作 (9)
- oracle (1)
- UML学习 (1)
- 版本控制 (1)
- 框架 (9)
- javaWeb基础 (13)
- c语言 (0)
- ant (0)
- 关于权限 (3)
- 真正开发有用 (5)
- javascript (2)
- 算法 (1)
- J2EE (1)
- junit (1)
最新评论
-
alleni123:
不错 一搜就搜到这个了
ssession和servletContext的比较 -
hua7381:
楼主,你真实帮了大忙了!!
万能乱码处理---url传中文 -
albrich:
1楼是正解
摘] 装了个Tomcat遇到的问题 -
JA_mcj:
ssession和servletContext的比较 -
haotw:
看了很有帮助,总算对hibernate的延迟加载有一定的了解了 ...
[转]hibernate延迟加载
java 代码
- public class User implements java.io.Serializable {
- // Fields
- private long id;
- private String name;
- private String email;
- private String addr;
- //定义Blob的pthto
- private Blob photo;
xml 代码
- <hibernate-mapping>
- <class name="org.tie.User" table="user" catalog="tie">
- <id name="id" type="long">
- <column name="id" />
- <generator class="identity" />
- </id>
- <property name="name" type="string">
- <column name="name" length="45" not-null="true" />
- </property>
- <property name="email" type="string">
- <column name="email" length="45" />
- </property>
- <property name="addr" type="string">
- <column name="addr" length="45" />
- </property>
- <!-- 映射blob类型 -->
- <property name="photo" type="blob">
- <column name="photo" />
- </property>
- </class>
- </hibernate-mapping>
两个测试方法:
java 代码
- public void testCreate(){
- User user = new User();
- user.setName("linweiyang");
- user.setAddr("beijing");
- user.setEmail("linweiyang@163.com");
- Blob photo = null;
- try {
- //将图片读进输入流
- FileInputStream fis = new FileInputStream("c:\\a.jpg");
- //转成Blob类型
- photo = Hibernate.createBlob(fis);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- user.setPhoto(photo);
- Session session = factory.openSession();
- Transaction tr = session.beginTransaction();
- session.save(user);
- tr.commit();
- session.close();
- }
- public void testRerieve(){
- Session session = factory.openSession();
- User user = (User)session.load(User.class, new Long(3));
- try {
- //从数据库中要读取出来
- InputStream is = user.getPhoto().getBinaryStream();
- //在把写到一个图片格式的文件里
- FileOutputStream fos = new FileOutputStream("c:\\linweihan.jpg");
- 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.这样从数据库中读到这个数组里,输出流在从这个数组中输出到特定的文件格式里.
发表评论
-
多对多双项关联
2007-12-02 16:39 4078数据库中仍然是利用一个中间表 持久化类中,都各自包含对方的集合 ... -
多对多单项关联
2007-12-02 16:02 44891.多对多单项关联 在数据库中多对多的关系,表之间设置一个中间 ... -
一对一关联
2007-12-02 14:13 3629一对一的关联 分为外键关联和主键关联 外键关联:在关系模型的表 ... -
双向的多对一或者双向的一对多
2007-12-02 00:38 3564一对多或者多对一都是从一方来看, 双向是从两个方向来看 这个时 ... -
一对多的另一个问题
2007-12-02 00:19 3320如果email 的一方设置uid 不能为空的话回报错,所以需要 ... -
做一对多遇到的几个问题(单向)
2007-12-02 00:14 3266java 代码 public class Use ... -
多对一举例(单项的,从一个方向看)
2007-12-01 23:15 3632java 代码 public class Use ... -
hibernate多对一
2007-12-01 22:59 4255处理多对一的时候 感觉关系模型多对一和一对多是一样的 在域模型 ... -
[转]Hibernate中的outer-join(二):fetch
2007-12-01 22:49 4606... -
hibernate中集合排序
2007-12-01 18:49 3686set,map可以支持内存排序和数据库排序 List什么都不支 ... -
[转] hibernate中给集合排序的方法
2007-12-01 18:47 5760<iframe style="MARGIN ... -
[转]集合类型和结果集排序
2007-12-01 18:39 3492言归正传,Hibernate中的Collection类型分为有 ... -
[转]hibernate延迟加载
2007-12-01 18:22 5980hibernate 延迟加载问题探 ... -
[转]主键自动生成办法
2007-12-01 18:11 3415... -
[转]hibernate中的 bag--解释的太好了.
2007-12-01 17:25 20431Bag是集合,与Set不同的是,Bag允许重复的元素, 在Ja ... -
hibernate值类型集合映射之Map
2007-12-01 17:02 2902java 代码 public class Use ... -
hibernate值类型集合映射之List
2007-12-01 16:43 3310java 代码 public class Use ... -
值类型映射---Set(2)
2007-12-01 13:43 3112这里自定义Email类,set里面放的是 email 类,非 ... -
值类型映射---Set(1)
2007-12-01 13:20 3399这里介绍2种不同的域模型的设计, 一种是Set里面装Strin ... -
事务的作用
2007-12-01 12:41 4557事务的作用是为了防止修改数据库, 如果只是查询那么就没必要修改 ...
相关推荐
BLOB 类型是数据库系统中用于存储大量二进制数据的数据类型。在 Java 应用开发中,尤其是使用 ORM 框架如 Hibernate 进行持久化层开发时,如何高效地处理 BLOB 类型字段成为了一个关键问题。 本文档将详细介绍如何...
例如,以下SQL语句创建了一个名为`users`的表,其中`uids`为主键,`img`为BLOB类型,`txt`为CLOB类型: ```sql CREATE TABLE users ( uids int PRIMARY KEY, img BLOB, txt CLOB ) ``` 在Java代码中,我们需要...
为了写入BLOB数据,首先需要创建一个空的BLOB实例,然后获取这个BLOB的游标,最后才能真正地向其中写入数据。 #### 2. 使用JDBC写入BLOB 使用JDBC处理Oracle BLOB主要涉及以下步骤: - **注册驱动并建立连接**:...
Oracle数据库支持多种数据类型,其中专门用于存储大型数据的类型包括: - LONG和LONG RAW:用于存储可变长的字符串数据和二进制数据,但有长度限制,每个表中只能有一个LONG字段,并且最长为2GB。 - CLOB(字符大...
总结来说,无论是通过JDBC还是Hibernate,写入Oracle数据库的Blob字段都需要先创建一个空Blob,然后获取其cursor,最后将二进制数据写入Blob。在JDBC中,这个过程涉及多个SQL语句和流操作;而在Hibernate中,通过ORM...
Blob是Binary Large Object的缩写,它是一种可以存储大量二进制数据的数据类型。在Hibernate中,Blob对象与Java的java.sql.Blob接口相对应,用于操作这些大对象。 1. **配置Hibernate映射文件(Hibernate Mapping ...
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)数据类型被用来存储大量二进制数据,如图片、音频、视频或者大型文本文件。本文将深入探讨Hibernate如何读取BLOB类型的数据,以及在实际开发中需要注意...
`@Lob`注解告诉Hibernate这是一个Blob类型的字段,它会自动处理数据库的映射。 ### 2. JDBC Blob操作 在不使用Hibernate的情况下,可以通过JDBC直接操作Blob。首先,你需要获取到PreparedStatement,然后通过`...
JAVA 中 SQLlite 数据库 BLOB 数据类型的存取 JAVA 中 SQLlite 数据库 BLOB 数据类型的存取是指在 JAVA 语言中使用 SQLlite 数据库来存储和读取大型二进制对象(BLOB),以便实现文件存储和读取的功能。本文将详细...
这里,我们提到了一个名为“Hibernate的映射类型_hibernate_mysql映射类型.doc”的文档,这很可能是一个详细的对照表,列出了Hibernate如何将Java数据类型映射到MySQL数据库的SQL数据类型。MySQL是世界上最流行的...
### Java中SQLite数据库BLOB数据类型的存取 #### 背景与问题描述 在Java中操作SQLite数据库时,BLOB(Binary Large Object)类型的数据处理是较为常见的需求之一,尤其是在需要存储图片、文档等二进制文件的情况下。...
在Java的持久化框架Hibernate中,Blob和Clob对象是用来处理大数据类型的,它们分别对应数据库中的BLOB(Binary Large Object)和CLOB(Character Large Object)。这篇文章将详细讲解如何在Hibernate中保存这两种...
在数据库迁移或数据同步的过程中,有时需要将含有大对象(LOB,包括BLOB和CLOB)的数据从一个数据库系统复制到另一个不完全支持LOB的数据库系统。本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle...
Blob是Oracle中的一个大对象数据类型,它可以存储最多4GB的二进制数据。Blob数据可以分为两部分:逻辑Blob头和实际的二进制数据。在Oracle中,Blob数据通常与Clob(Character Large Object)一起使用,Clob用于存储...
Hibernate 提供了多种数据类型,用于匹配不同数据库系统支持的标准 SQL 数据类型。这些数据类型包括: - **数值类型**:例如,`byte` 和 `java.lang.Byte` 映射到 `TINYINT`,`short` 和 `java.lang.Short` 映射到 ...
在Java的持久化框架Hibernate中,处理大数据类型如Oracle数据库中的Clob(Character Large Object)和Blob(Binary Large Object)字段是一项重要的任务。Clob通常用于存储大量的文本数据,而Blob则适用于二进制...
BLOB数据的存储需要使用特殊的数据类型,例如text、ntext或image数据类型。这些数据类型可以存储长度不确定的二进制数据,最大长度可达2GB。 此外,笔者还讨论了高职高专院校教育的特点和需求。在开发网络教学资源...