hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制数据类型,因为很多种类型映射都有重复的

hibernate映射类型
在对象/关系映射文件中,Hibernate采用映射类型作为Java类型和SQL类型的桥梁。Hibernate映射类型分为2种:内置映射类型和自定义映射类型。
1、内置映射类型
Hibernate对所有的Java原生类型、常用的Java类型如String、Date等都定义了内置的映射类型。表2列出了Hibernate映射类型、对应的Java类型以及对应的标准SQL类型。
表2 Hibernate内置映射类型
|
Hibernate映射类型 |
Java类型 |
标准SQL类型 |
大小 |
|
integer/int |
java.lang.Integer/int |
INTEGER |
4字节 |
|
long |
java.lang.Long/long |
BIGINT |
8字节 |
|
short |
java.lang.Short/short |
SMALLINT |
2字节 |
|
byte |
java.lang.Byte/byte |
TINYINT |
1字节 |
|
float |
java.lang.Float/float |
FLOAT |
4字节 |
|
double |
java.lang.Double/double |
DOUBLE |
8字节 |
|
big_decimal |
java.math.BigDecimal |
NUMERIC |
|
|
character |
java.lang.Character/java.lang.String/char |
CHAR(1) |
定长字符 |
|
string |
java.lang.String |
VARCHAR |
变长字符 |
|
boolean/ yes_no/true_false |
java.lang.Boolean/Boolean |
BIT |
布尔类型 |
|
date |
java.util.Date/java.sql.Date |
DATE |
日期 |
|
timestamp |
java.util.Date/java.util.Timestamp |
TIMESTAMP |
日期 |
|
calendar |
java.util.Calendar |
TIMESTAMP |
日期 |
|
calendar_date |
java.util.Calendar |
DATE |
日期 |
|
binary |
byte[] |
BLOB |
BLOB |
|
text |
java.lang.String |
TEXT |
CLOB |
|
serializable |
实现java.io.Serializablej接口的任意Java类 |
BLOB |
BLOB |
|
clob |
java.sql.Clob |
CLOB |
CLOB |
|
blob |
java.sql.Blob |
BLOB |
BLOB |
|
class |
java.lang.Class |
VARCHAR |
定长字符 |
|
locale |
java.util.Locale |
VARCHAR |
定长字符 |
|
timezone |
java.util.TimeZone |
VARCHAR |
定长字符 |
|
currency |
java.util.Currency |
VARCHAR |
定长字符 |
2、自定义映射类型
Hibernate提供了自定义映射类型接口,允许用户以编程的方式创建自定义的映射类型。用户自定义的映射类型需要实现net.sf.hibernate.UserType或net.sf.hibernate.CompositeUserType接口。具体的创建自定义映射类型的方法请参考hibernate官方文档或相关资料,这里不再详细介绍。
===========================================================================
SOURCE:
hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化的更多相关文章
- java类的成员变量和局部变量的区别
转自:https://jingyan.baidu.com/article/03b2f78c1ba2d05ea237ae9b.html 在类中位置不同:成员变量:在类中方法外.局部变量:在方法定义中或者 ...
- python中的类的成员变量以及property函数
1 python类的各种变量 1.1 全局变量 在类外定义的变量. 1.2 类变量 定义在类里面,所有的函数外面的变量.这个变量只有一份,是所有的对象共有的.在类外用“类.”来引用. 1.3 实例变量 ...
- java类定义、变量类型、构造函数
1.java类class的定义 所有java程序都以类class为组织单元,java类由属性和方法组成,下面看例子: public class Phone{ //属性 String company ...
- java中的类、成员变量、方法的修饰符。
http://blog.sina.com.cn/s/blog_7ffb8dd501011alw.html http://www.cnblogs.com/lixiaolun/p/4311727.html
- java局部变量,成员变量在堆和栈中的存储
对于局部变量,如果是基本类型,会把值直接存储在栈:如果是引用类型,比如String s = new String("william");会把其对象存储在堆,而把这个对象的引用(指针 ...
- 继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类。 (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法。 (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承。 (4)子类中定义的成员方法,并且这个方法的名字返回类型,以及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。 分析以上程
继承的基本概念: (1)Java不支持多继承,也就是说子类至多只能有一个父类. (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法.(3)子类中定义的成员变量和父类中定义的 ...
- java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
/* 样例1: class Parent{ int num = 3; } class Child extends Parent{ int num = 4; } */ /* 样例2: class Par ...
- Java反射机制可以动态修改实例中final修饰的成员变量吗?
问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ...
- (转载)php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗?
(转载)http://s.yanghao.org/program/viewdetail.php?i=184313 php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗? class block ...
随机推荐
- 怎么样在Myeclipse中配置JDK?
1.首先电脑上安装JDK 2.打开Myeclipse >> Window >> Preferences 如图1: 图1 2.Preferences >> ...
- [笔记]linux用户与用户组
sudo useradd -m john 自动建立主目录 sudo passwd john sudo useradd -g groupusers mike sudo useradd -s /bin/b ...
- 测试EntityFramework,Z.EntityFramework.Extensions,原生语句在不同的查询中的表现。原来池化与非池化设定是有巨大的影响的。
Insert测试,只测试1000条的情况,多了在实际的项目中应该就要另行处理了. using System; using System.Collections.Generic; using Syste ...
- monkeyrunner之坐标或控件ID获取方法-续
在之前的文章中,介绍过控件坐标和ID的获取方法,这里,我们再介绍一个新的工具-uiautomatorviewer. Uiautomatorviewer是Android sdk自带的工具,位置在sdk/ ...
- [Top-Down Approach] Chatper 3 Notes
这里留下空白,提醒自己,第一章第二章尚待整理回顾. 此处缺了3.6/3.7两节拥塞控制的内容
- 【转】C# 中 10 个你真的应该学习(和使用!)的功能
如果你开始探索C#或决定扩展你的知识,那么你应该学习这些有用的语言功能,这样做有助于简化代码,避免错误,节省大量的时间. 1)async / await 使用async / await-pattern ...
- 浏览器控制台命令调试——console
控制台命令调试时通过浏览器开发工具中的控制台命令嵌入到JavaScript中,输出特定的信息或日志,从而达到调试的目的. 我们常用的Chrome和FireFox,都可以通过F12来打开开发工具. 下面 ...
- 用vue.js学习es6(四):Symbol类型
一.Symbol类型: 1.ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.它是JavaScript语言的第七种数据类型,前六种是:Undefined.Null. 布尔值(Boolea ...
- jqGrid jqGrid分页参数+条件查询
HTML <div class="row"> <div class="col-sm-20"> <form id="for ...
- git 命令学习
last-update: 2016年10月27日 1. git stash 简短描述 当你正在进行项目中某一部分的工作,但是里面的东西处于一个比较杂乱的状态,但是却想要切换到其他分支.问题是,你不想提 ...