`

请您先登录,才能继续操作

javaBean对应Hibernate映射类型

 
阅读更多

 

  Hibernate映射类型分为两种:内置的映射类型和客户化映射类型。内置映射类型负责把一些常见的Java类型映射到相应的SQL类型;此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活地定制客户化映射类型

1.内置映射类型
   1).Java基本类型的Hibernate映射类型
Java类型 Hibernate映射类型 标准SQL类型 大小和取值范围
int/Integer int/integer INTEGER 4Byte
long/Long    long BIGINT 8Byte
short/Short short SAMLLINT 2Byte
byte/Byte byte TINYINT 1Byte
float/Float float FLOAT 4Byte
double/Double double DOUBLE 8Byte
BigDecimal big_decimal NUMBERIC Numeric(8,2)
char/Character/String character CHAR(1) 定长字符
String string VARCHAR 变长字符
boolean/Boolean boolean BIT 布尔类型
boolean/Boolean yes/no CHAR(1)('Y'/'N') 布尔类型
boolean/Boolean true/false CHAR(1)('T'/'F') 布尔类型



    2). Java时间和日期类型的Hibernate映射类型

Java类型 Hibernate映射类型 标准SQL类型 描述
java.util.Date/java.sql.Date date DATE 日期,yyyy-mm-dd
java.util.Date/java.sql.TIme time TIME 时间,hh:mm:ss
java.util.Date/java.sql.Timestamp timestamp TIMESTAMP 时间戳,yyyymmddhhmmss
java.util.Calendar calendar TIMESTAMP 同上
java.util.Calendar calendar_date DATE 日期,yyyy-mm-dd


* 当程序类型为java.sql.Timestamp, 数据库中表属性类型为timestamp的情况下,即使用户以空值插入数据,数据库系统仍然会自动填充timestamp的值

    3). Java 大对象类型的Hibernate映射类型

Java类型 Hibernate映射类型 标准SQL类型 MySql类型 Oracle类型
byte[] binary VARBINARY/BLOB BLOB BLOB
String text CLOB TEXT CLOB
serializable 实现serializable接口的一个java类 VARBINARY/BLOB BLOB BLOB
java.sql.Clob clob CLOB TEXT CLOB
java.sql.Blob blob BLOB BLOB BLOB

*  在应用程序中通过Hibernate来保存java.sql.Clob或者java.sql.Blob实例时,必须包含两个步骤:
        a. 在一个数据库事务中先保存一个空的Blob或Clob实例;b. 接着锁定这条记录,更新在步骤(1)中保存的Blob或Clob实例,把二进制数据或长文本数据写到Blob或Clob实例中。

 1 
 2Session session = sessionFactory.openSession();  
 3Transaction tx = session.beginTransaction();  
 4Customer customer = new Customer();  
 5customer.setDescription(Hibernate.createClob("")); //先保存一个空的clob  
 6session.save(customer);  
 7session.flush();  
 8//锁定这条记录  
 9session.refresh(customer,LockMode.UPGRADE);
 10oracle.sql.CLOB clob = (oracle.sql.CLOB) customer.getDescription();
 11java.io.Writer pw = clob.getCharacterOutStream();
 12pw.write(longText);//longText是一个长度超过255的字符串
 13pw.close();
 14tx.commit();
 15session.close();


*  一个java类型对应多个Hibernate映射类型的场合。例如,如果持久化类的属性为java.util.Date类型,对应的Hibernate映射类型可以是date,time
或timestamp。此时必须根据对应的数据库表的字段的SQL类型,来确定Hibernate映射类型。如果字段为Date类型,则hibernate映射为datge,如果为TIME则为time,如果为TIMESTAMP则为timestamp。

 

分享到:
评论

相关推荐

    常用 Hibernate 映射配置说明.doc

    ### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库...

    jsp+servlet+javabean+hibernate租房系统

    【标题】"jsp+servlet+javabean+hibernate租房系统"是一个基于Web的租房管理系统,它利用了Java技术栈中的四大核心技术:JSP(JavaServer Pages)、Servlet、JavaBean以及Hibernate。这个系统旨在为用户提供一个方便...

    注解配置 javabean hibernate 关联关系

    在Hibernate框架中,注解配置被广泛用于简化对象关系映射(ORM)的配置,使得Java Bean可以直接与数据库表进行关联。本篇文章将深入探讨如何使用注解配置Java Bean并建立Hibernate的关联关系。 首先,我们需要理解...

    Hibernate配置文件中映射元素详解

    ### Hibernate映射文件基础结构 映射文件通常以`<!DOCTYPE hibernate-mapping>`开头,引用DTD(文档类型定义),确保文件遵循正确的格式。例如: ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/...

    jsf+hibernate+javabean完成对表的增删查改

    在本例中,每个JavaBean对应数据库中的一个表,其属性对应表中的列。 2. **配置Hibernate**:设置Hibernate的配置文件(hibernate.cfg.xml),定义数据库连接信息,以及实体类与数据库表的映射(在映射文件或实体类...

    Hibernate,hibernate笔记

    在Hibernate映射文件(hbm.xml)中,如果指定了not-null属性为true,那么对应的JavaBean字段就必须有值,否则会引发这个异常。 2. **Hibernate配置**: `Hibernate.cfg.xml`文件是Hibernate的配置文件,包含了...

    Hibernate存储Clob字段的方式总结

    2. 创建与数据库表对应的JavaBean,例如名为ItemsSaveclob.java的类,其中Clob字段使用String类型进行处理。 3. 在Hibernate的映射文件ItemsSaveclob.hbm.xml中,将content属性使用java.lang.String类型进行映射。 4...

    数据库表映射成实体类

    在实际项目中,映射文件(如Hibernate的`hbm.xml`或MyBatis的`Mapper`接口)通常会详细定义每个字段的数据类型、主键、关联关系等信息。这有助于保持代码与数据库结构的一致性,并简化了数据库设计的变化对代码的...

    Hibernate一对多映射

    我们为这两个类创建对应的JavaBean: ```java public class User { private Long id; private String name; // 一对多关系的集合 private Set<Order> orders = new HashSet(); // getters and setters } ...

    JavaEE技术-自主学习.zip_hibernate_hibernate session _javaee映射.xml

    这些文件定义了JavaBean(PO类)与数据库表之间的对应关系。例如,如果我们有一个`User`类,对应的XML映射文件可能如下: ```xml <hibernate-mapping> <!-- ...其他字段映射... --> </hibernate-...

    对Hibernate配置文件中的映射元素详解

    3. `property`:映射JavaBean风格的属性到数据库字段,可以通过`column`属性指定对应的列名,`not-null`和`update`属性控制字段的约束和更新行为。 4. `many-to-one`:表示多对一的关系,`name`属性是关联的属性名,...

    javabean(DB)

    - **Hibernate ORM**:Hibernate是一个流行的Java ORM(对象关系映射)框架,它可以将JavaBean映射到数据库表,简化数据库操作。 6. **JavaBean的可视化** - **EJB(Enterprise JavaBeans)**:在JavaEE环境中,...

    SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_

    在数据库操作中,将SQL查询结果映射到Java对象是常见的需求,这时JavaBean的作用就显现出来了。"SqlToJavaBean_javabean_根据表结构生成javabean_生成javabean_"这个标题暗示了一个工具或库,它能够自动化地根据...

    java持久化工具类:JavaBean与XML

    例如,Hibernate,一个流行的Java持久化框架,就使用XML文件(hibernate.cfg.xml和.hbm.xml)来配置数据源、实体类和表之间的映射关系。 Hibernate是一个基于Java的ORM框架,它提供了对Java对象和关系数据库之间的...

    Hibernate概述及实例分析

    - 数据库(如Oracle)用于存储数据,Hibernate映射文件定义对象与表的对应关系,JavaBean表示业务实体,DBOperator使用Hibernate接口与数据库交互,Struts2处理HTTP请求,协调各层工作。 总结来说,Hibernate通过...

    使用注解javaBean关联数据库字段

    - Hibernate:通过Hibernate的注解API,可以直接在JavaBean中定义数据库映射,简化ORM(对象关系映射)过程。 - MyBatis:MyBatis允许在Mapper接口和XML映射文件中使用注解,实现SQL语句的动态生成。 5. **工具...

    javabean的妙用

    2. **Hibernate映射文件生成**: - 在Eclipse中安装并配置Hibernate插件。 - 通过`New > Hibernate > Hibernate Mapping File`来创建映射文件,指定数据库表并生成对应的JavaBean。 3. **Struts ActionForm与JSP...

    javabean留言小项目

    - **持久化**:通过ORM(Object-Relational Mapping)框架如Hibernate,可以直接将JavaBean映射到数据库表。 4. **开发流程** - **创建JavaBean类**:根据需求定义属性和方法。 - **实例化和赋值**:在代码中...

    JavaBean讲解(上)

    4. 持久化:通过ORM(对象关系映射)框架如Hibernate,JavaBean可以轻松地映射到数据库表,实现数据持久化。 JavaBean的创建步骤: 1. 创建一个公共类,并为需要暴露的属性提供私有变量。 2. 为每个属性添加getter...

Global site tag (gtag.js) - Google Analytics