Hibernate针对Java基本类型字段的映射策略总结

本文探讨了在Hibernate框架下,如何在不同数据库(MySQL, SQL Server, Oracle)中映射Java基本类型。通过测试环境展示了各数据库版本,并提供了一种实体类作为映射测试案例,总结了Java基本类型的映射策略。" 125740882,14810967,理解BEPI认证:评估标准与流程解析,"['供应链管理', '环境评估', '企业社会责任', '数据管理', '环境保护']

本文使用的数据库测试环境为:

  • MySQL:Windows 10x64 5.7.12-log
  • SQL Server:Windows 10x64 SQL Server 2012
  • Oracle:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

由于工程需要支持多种数据库,自然而然就想到使用Hibernate框架,但是不同的数据库提供的数据类型是不同的,Hibernate内置了针对不同数据库数据类型的映射策略。使用下面的实体类进行映射测试:

@Entity(name = "user")
@Table(name = "user")
public class User implements Serializable {
    private static final long serialVersionUID = 8849870114127659929L;

    @Id
    private Long id;
    @Column
    private String name;
    @Column
    @Lob
    private String comment;
    @Column
    private Integer age;
    @Temporal(TemporalType.DATE)
    private Date day;
    @Temporal(TemporalType.TIME)
    private Date time;
    @Temporal(TemporalType.TIMESTAMP)
    private Date mark;
    private Boolean male;
    private Double tall;
    private Float size;
}

下面是针对Java基本类型的映射总结:

Java类型MySQLSQL ServerOracle
Stringvarchar(255)varchar(255)VARCHAR2(30)
String(@Lob)longtextvarchar(MAX)CLOB(4000)
Integerint(11)intNUMBER(10)
Longbigint(20)bigintNUMBER(19)
DoubledoublefloatFLOAT(126)
FloatfloatfloatFLOAT(126)
Booleanbit(1)bitNUMBER(1)
Date(TemporalType.DATE)datedateDATE(7)
Date(TemporalType.TIME)timetime(7)DATE(7)
Date(TemporalType.TIMESTAMP)datetimedatetime2(7)TIMESTAMP(6)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值