`

hibernate annoation (四 lob)

阅读更多

hiberante sql映射对应

 

Java数据类型 Hibernate数据类型 标准SQL数据类型
(PS:对于不同的DB可能有所差异)
byte、java.lang.Byte byte TINYINT
short、java.lang.Short short SMALLINT
int、java.lang.Integer integer INGEGER
long、java.lang.Long long BIGINT
float、java.lang.Float float FLOAT
double、java.lang.Double double DOUBLE
java.math.BigDecimal big_decimal NUMERIC
char、java.lang.Character character CHAR(1)
boolean、java.lang.Boolean boolean BIT
java.lang.String string VARCHAR
boolean、java.lang.Boolean yes_no CHAR(1)('Y'或'N')
boolean、java.lang.Boolean true_false CHAR(1)('Y'或'N')
java.util.Date、java.sql.Date date DATE
java.util.Date、java.sql.Time time TIME
java.util.Date、java.sql.Timestamp timestamp TIMESTAMP
java.util.Calendar calendar TIMESTAMP
java.util.Calendar calendar_date DATE
byte[] binary VARBINARY、BLOB
java.lang.String text CLOB
java.io.Serializable serializable VARBINARY、BLOB
java.sql.Clob clob CLOB
java.sql.Blob blob BLOB
java.lang.Class class VARCHAR
java.util.Locale locale VARCHAR
java.util.TimeZone timezone VARCHAR
java.util.Currency currency VARCHAR

 

一,针对大字段也就是 colb,blob

 在hibernate annoation里面可以如下使用:

  @Lob
 public String getC() {
  return c;
 }
 @Lob
 public byte[] getB() {
  return b;
 }

 java.sql.Clob, Character[], char[] and java.lang.String 会被映射为 Clob. java.sql.Blob, Byte[], byte[] and serializable 会被映射为Blob.

  当然我们可以使用正对不同的数据库使用数据库原始类型例如 mysql:使用@Column   (columnDefinition="longtext")(不推荐使用这种 防止有些数据库的对clob和blob的不支持)

  对blob也可以不进行任何注释但是在使用的时候会有预想不到的错误 例如 mysql 他会映射为TINYBLOB 其容量为 256 字节  如果加上lob注释 则映射为LONGBLOB 容量为4g,可想而知 相见我的利益篇文章:

http://ericjoe.iteye.com/admin/blogs/443623

则可以映射为数据库对应的clob内省或者blob内型 例如(mysql:b longblob, c longtext);

存取的时候clob就可以按照string类型来处理 而blob可以以流的形式来处理 例如:

存的时候:

BufferedInputStream in = new BufferedInputStream(new FileInputStream(
    new File("d:\\19204.jpg")));
  byte[] b = new byte[in.available()];
  in.read(b);

bean.setB(b);

in.close();

读取:

Session session = HibernateSessionFactory.getSession();
  User user = (User)session.get(User.class, 1);
  byte[] b = user.getB();
  BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(
    new File("d:\\192041.jpg")));
  out.write(b);
  out.close();

 

分享到:
评论

相关推荐

    Spring+Hibernate处理Oracle lob字段(一)

    在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...

    Hibernate对BLOB CLOB操作

    在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...

    oracle dbms_lob

    Oracle数据库系统中,`DBMS_LOB`是一个重要的PL/SQL包,专门用于处理大型对象(LOBs,Large Object)。LOBs是Oracle提供的一种数据类型,用于存储大量数据,如文本、图像、音频或视频文件等。这个包包含了各种过程和...

    Oracle数据库中LOB的调优.pdf

    LOB数据类型包括BLOB、CLOB、NCLOB和BFILE四种,分别用于存储二进制数据、字符数据、国家字符数据和外部文件数据。在Oracle数据库中,LOB数据类型的存储和优化是非常重要的,因为LOB数据类型占用的存储空间较大,且...

    Oracle LOB 详解

    四、LOB 的优点和缺点 LOB 有很多优点,例如: * 可以存储大型二进制数据。 * 可以提高数据的安全性。 * 可以提高数据的可读性。 但是,LOB 也有缺点,例如: * 占用大量存储空间。 * 影响数据库的性能。 LOB ...

    Oracle Lob Performance Guidelines

    Oracle 支持四种 LOB 类型:`CLOB`、`NCLOB`、`BLOB` 和 `BFILE`。其中,`CLOB` 和 `NCLOB` 用于存储字符数据;`BLOB` 用于存储二进制数据;而 `BFILE` 是指向数据库外二进制文件的引用。 #### 优化 LOB 性能的关键...

    ORACLE LOB大对象处理

    LOBs分为四种类型:BLOB(Binary Large Object)用于二进制数据,CLOB(Character Large Object)用于字符数据,NCLOB(National Character Large Object)用于Unicode字符数据,以及BFILE(Binary File)用于存储...

    英语语料库LOB语料库

    LOB语料库 创建时间: 1970年代初 创建单位:英国Lancaster大学和挪威Oslo大学以及Bergen大学 规模层级: 100万词次 基本情况:研究当代英国英语,与美国英语对比,使用了TAGIT系统,以统计方式建立换算几率矩阵,提高标注...

    Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt

    Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt

    本文档主要介绍如何对LOB字段进行处理

    ### 如何对LOB字段进行处理 #### 摘要与背景 随着信息技术的进步及应用需求的不断扩展,数据库管理系统(DBMS)面临着存储多样化数据类型的挑战。例如,在开发旅游信息系统时,除了基本的文字信息外,还需要处理大量...

    前端开源库-lob

    **前端开源库-Lob** Lob是一个强大的前端开源库,主要设计用于简化与LOB(Letters, Cards, and Labels)API的交互。LOB API是后端服务,它允许开发者轻松地创建和发送高质量的物理邮寄,如信件、卡片和标签。在Web...

    hibernate所有开发包

    2. Table/Column:使用@Table和@Column注解来指定表名和字段名,其他如@Temporal、@Lob等注解用于特殊类型的映射。 3. Inheritance:Hibernate支持多种继承映射策略,如单表继承、联合继承和表-per-hierarchy。 四...

    Oracle LOB字段处理工具

    Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。...

    java存lob数据到sybase数据库

    通过spring存blob和clob数据到sybase数据库中,压缩包里包含了三种方式,(1)spring+hibernate,切面事务(aop),存lob数据,(2)spring+hibernate存lob数据,(3)spring+jdbc存lob数据。

    DB2 LOB 详解

    DB2 LOB详解涉及的知识点非常丰富,下面将从DB2中LOB字段的存储及处理过程、如何创建LOB数据对象、维护LOB数据的注意事项、使用工具进行维护等方面进行详细说明。 首先,DB2中LOB字段的存储和处理过程是一门深奥的...

    hibernate保存blob,clob对象

    总结,Hibernate通过`@Lob`注解支持BLOB和CLOB的持久化,开发者需要适当地将数据转换为对应的对象类型,然后使用Hibernate的CRUD操作进行保存和检索。同时,要注意性能优化,如懒加载和数据库特定的最佳实践。

    hibernate-3.2 源码

    2. 支持lob类型:Blob和Clob类型的数据可以被持久化。 3. 集合映射:一对多、多对多关系的映射,如Set、List、Map等集合类型的处理。 4. 异步查询:通过Hibernate的FutureResult和Query.listAsync()实现异步数据检索...

Global site tag (gtag.js) - Google Analytics