03_Hibernate------单表映射

03 单表映射

 

  1. 单类→单表的映射

①映射主键

②映射日期类型

③数据类型映射对照表

  1. Hibernate中主键生成方式
    1. hilo

①由Hibernate根据high/low算法生成主键

②hilo标识符生成器在生成标识符时,需要读取并修改HI_TABLE表中的NEXT_VALUE值

③完全不依赖于任何数据库系统

④OID必须为long、int或short类型,如果为byte则会抛出异常

<generator class= "hilo">

   <param name= "table">HL_table </param>

   <param name= "column">NEXT_VALUE </param>

   <param name= "max_lo">]10</param >

</generator>

⑤高低算法

参见:《[Ymh_sirius]_参考资料:高低算法.doc》

    1. identity

①由具体数据库负责生成主键

②要求数据库将主键定义为自动增长类型

③支持自增主键的数据库:MySQL、DB2、微软SQLServer、Sybase等;

但是有局限性,因为Oracle不支持;

④OID必须为long、int或short类型,如果为byte则会抛出异常

    1. sequence

①利用底层的数据库提供的序列生成标识符

②要求底层数据库支持序列:DB2、Oracle

③OID必须为long、int或short类型,如果为byte则会抛出异常

④配置方式

<id name ="studentId" type="java.lang.Integer">

    <column name ="STUDENTID" />

    <generator class ="sequence">

        <param name ="sequence">stu_seq</ param>

    </generator >

</id >

 

    1. native

①依据底层数据库对自动生成标识符的支持能力,来选择使用identity、sequence或hilo

②由于native标识符生成器能够根据底层数据库系统的类型,自动选择合适的方式生成主键,所以非常适合跨数据库平台开发

③OID必须为long、int或short类型,如果为byte则会抛出异常

    1. assigned(指定的)

Hibernate和数据库都不负责生成主键的值,完全由程序员自己指定。

    1. 其他主键生成方式

select、seqhilo、foreign、guid等等

  1. 在Hibernate中映射日期和时间
    1. Java数据类型和JDBC API的对应关系

注:时间戳:从1970年1月1日0点0时0分0秒开始计时,到当前时间所经过的毫秒数

    1. Hibernate中的日期映射方式

大部分情况下Hibernate可以根据Java类型自动找到对应的Hibernate映射类型,从而确定数据库表中的字段类型,但如果一个Java类型对应的Hibernate映射类型不只一个,那么就必须为Java类型明确指定Hibernate映射类型,例如:

                                                

 

  1. Hibernate映射类型对照表

Java类型

Hibernate映射类型

标准SQL类型

大小

java.lang.Integer/int

integer/int

INTEGER

4字节

java.lang.Long/long

long

BIGINT

8字节

java.lang.Short/short

short

SMALLINT

2字节

java.lang.Byte/byte

byte

TINYINT

1字节

java.lang.Float/float

float

FLOAT

4字节

java.lang.Double/double

double

DOUBLE

8字节

java.math.BigDecimal

big_decimal

NUMERIC

 

java.lang.Character/java.lang.String/char 

character

CHAR(1)

定长字符

java.lang.String

string

VARCHAR

变长字符

java.lang.Boolean/boolean

boolean/yes_no/true_false

BIT

布尔类型

java.util.Date/java.sql.Date

date

DATE

日期

java.util.Date/java.sql.Timestamp

timestamp

TIMESTAMP

日期

java.util.Calendar

calendar

TIMESTAMP

日期

java.util.Calendar

calendar_date

DATE

日期

byte[]

binary

BLOB

BLOB

java.lang.String

text

TEXT

CLOB

实现java.io.Serializable接口的任意Java类

serializable

BLOB

BLOB

java.sql.Clob

clob

CLOB

CLOB

java.sql.Blob

blob

BLOB

BLOB

java.lang.Class

class

VARCHAR

定长字符

java.util.Locale

locale

VARCHAR

定长字符

java.util.TimeZone

timezone

VARCHAR

定长字符

java.util.Currency

currency

VARCHAR

定长字符

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列,管理员可以进行查看列、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
hibernate-jpa-2.1-api 1.0.2是一个Java持久化规范的实现库。它是基于JPA(Java Persistence API)2.1规范的Hibernate实现。Hibernate是一个流行的ORM(对象关系映射)框架,用于在Java应用程序和关系数据库之间进行数据持久化。 该版本的hibernate-jpa-2.1-api是对JPA 2.1规范的实现,并且是Hibernate团队为了确保应用程序与Java EE 7兼容性而发布的一个版本。 JPA是一种使用对象模型操作数据库的标准规范,它提供了一组API,使开发人员可以使用面向对象的方式访问和操作数据库。Hibernate作为一个JPA的实现,提供了许多附加的功能和特性,使得开发人员可以更加简化和灵活地进行数据库操作。 通过使用hibernate-jpa-2.1-api,开发人员可以使用JPA的标准API,以及Hibernate提供的独有特性,来实现应用程序的数据持久化需求。它提供了实体管理器,用于管理实体对象的生命周期,以及CRUD操作。此外,它还提供了用于查询和各种持久化注解的支持。 通常情况下,使用hibernate-jpa-2.1-api需要将其添加到项目的依赖中,并与其他必需的Hibernate库一起使用。开发人员需要熟悉JPA的基本概念和API,并且理解Hibernate特有的扩展和配置选项。 总的来说,hibernate-jpa-2.1-api 1.0.2提供了开发人员在使用JPA进行数据持久化时的基本工具和功能。它是Hibernate团队为了支持JPA 2.1规范而发布的一个版本,开发人员可以使用它来简化和灵活地操作数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值