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();
分享到:
相关推荐
在本文中,我们将深入探讨如何在Java环境下,利用Spring和Hibernate框架处理Oracle数据库中的LOB(Large Object)字段。LOB字段通常用于存储大体积的数据,如文本、图片或视频。在实际开发中,处理这类数据时可能会...
在Java的持久化框架Hibernate中,BLOB(Binary Large Object)和CLOB(Character Large Object)是用来处理大数据类型的,如图像、音频、大型文本等。本文将深入探讨Hibernate如何进行BLOB和CLOB的操作,以及相关的...
Oracle数据库系统中,`DBMS_LOB`是一个重要的PL/SQL包,专门用于处理大型对象(LOBs,Large Object)。LOBs是Oracle提供的一种数据类型,用于存储大量数据,如文本、图像、音频或视频文件等。这个包包含了各种过程和...
LOB数据类型包括BLOB、CLOB、NCLOB和BFILE四种,分别用于存储二进制数据、字符数据、国家字符数据和外部文件数据。在Oracle数据库中,LOB数据类型的存储和优化是非常重要的,因为LOB数据类型占用的存储空间较大,且...
四、LOB 的优点和缺点 LOB 有很多优点,例如: * 可以存储大型二进制数据。 * 可以提高数据的安全性。 * 可以提高数据的可读性。 但是,LOB 也有缺点,例如: * 占用大量存储空间。 * 影响数据库的性能。 LOB ...
Oracle 支持四种 LOB 类型:`CLOB`、`NCLOB`、`BLOB` 和 `BFILE`。其中,`CLOB` 和 `NCLOB` 用于存储字符数据;`BLOB` 用于存储二进制数据;而 `BFILE` 是指向数据库外二进制文件的引用。 #### 优化 LOB 性能的关键...
LOBs分为四种类型:BLOB(Binary Large Object)用于二进制数据,CLOB(Character Large Object)用于字符数据,NCLOB(National Character Large Object)用于Unicode字符数据,以及BFILE(Binary File)用于存储...
LOB语料库 创建时间: 1970年代初 创建单位:英国Lancaster大学和挪威Oslo大学以及Bergen大学 规模层级: 100万词次 基本情况:研究当代英国英语,与美国英语对比,使用了TAGIT系统,以统计方式建立换算几率矩阵,提高标注...
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
### 如何对LOB字段进行处理 #### 摘要与背景 随着信息技术的进步及应用需求的不断扩展,数据库管理系统(DBMS)面临着存储多样化数据类型的挑战。例如,在开发旅游信息系统时,除了基本的文字信息外,还需要处理大量...
**前端开源库-Lob** Lob是一个强大的前端开源库,主要设计用于简化与LOB(Letters, Cards, and Labels)API的交互。LOB API是后端服务,它允许开发者轻松地创建和发送高质量的物理邮寄,如信件、卡片和标签。在Web...
2. Table/Column:使用@Table和@Column注解来指定表名和字段名,其他如@Temporal、@Lob等注解用于特殊类型的映射。 3. Inheritance:Hibernate支持多种继承映射策略,如单表继承、联合继承和表-per-hierarchy。 四...
Oracle数据库系统中,LOB(Large Object)字段是用来存储大量数据的类型,如图像、音频、视频或大型文本文件。在数据库操作中,LOB字段的处理往往比常规的行数据更为复杂,因为它涉及到大块的数据读取、写入和管理。...
通过spring存blob和clob数据到sybase数据库中,压缩包里包含了三种方式,(1)spring+hibernate,切面事务(aop),存lob数据,(2)spring+hibernate存lob数据,(3)spring+jdbc存lob数据。
DB2 LOB详解涉及的知识点非常丰富,下面将从DB2中LOB字段的存储及处理过程、如何创建LOB数据对象、维护LOB数据的注意事项、使用工具进行维护等方面进行详细说明。 首先,DB2中LOB字段的存储和处理过程是一门深奥的...
总结,Hibernate通过`@Lob`注解支持BLOB和CLOB的持久化,开发者需要适当地将数据转换为对应的对象类型,然后使用Hibernate的CRUD操作进行保存和检索。同时,要注意性能优化,如懒加载和数据库特定的最佳实践。
2. 支持lob类型:Blob和Clob类型的数据可以被持久化。 3. 集合映射:一对多、多对多关系的映射,如Set、List、Map等集合类型的处理。 4. 异步查询:通过Hibernate的FutureResult和Query.listAsync()实现异步数据检索...