数据类型对照表:

标准SQL数据类型 Java数据类型 Hibernate数据类型
TINYINT byte、java.lang.Byte byte
SMALLINT short、java.lang.Short short
INGEGER int、java.lang.Integer integer
BIGINT long、java.lang.Long long
FLOAT float、java.lang.Float float
DOUBLE double、java.lang.Double double
NUMERIC java.math.BigDecimal big_decimal
CHAR(1) char、java.lang.Character character
BIT boolean、java.lang.Boolean boolean
VARCHAR java.lang.String string
CHAR(1)('Y'或'N') boolean、java.lang.Boolean yes_no
CHAR(1)('Y'或'N') boolean、java.lang.Boolean true_false
DATE java.util.Date、java.sql.Date date
TIME java.util.Date、java.sql.Time time
TIMESTAMP java.util.Date、java.sql.Timestamp timestamp
TIMESTAMP java.util.Calendar calendar
DATE java.util.Calendar calendar_date
VARBINARY、BLOB byte[] binary
CLOB java.lang.String text
VARBINARY、BLOB java.io.Serializable serializable
CLOB java.sql.Clob clob
BLOB java.sql.Blob blob
VARCHAR java.lang.Class class
VARCHAR java.util.Locale locale
VARCHAR java.util.TimeZone timezone
VARCHAR java.util.Currency currency

Java和数据库对应的数据类型速查

Mysql************************************

当前列 ClassName ColumnType DisplaySize TypeName
 1 java.lang.Integer   4  11 INTEGER
 2 java.lang.Integer  -6  4 TINYINT
 3 java.lang.String  12  0 UNKNOWN
 4 java.lang.Boolean  -7  1 TINYINT
 5 java.lang.Integer   5  6 SMALLINT
 6 java.lang.Integer   4  9 MEDIUMINT
 7 java.lang.Integer   4  11 INTEGER
 8  java.lang.Long  -5  20 BIGINT
 9  java.lang.Double   8  22 DOUBLE 
 10  java.lang.Double   8  22 DOUBLE
 11  java.lang.Float   7  12 FLOAT
 12  java.lang.String   12  11 UNKNOWN
 13  java.lang.String   12  11 UNKNOWN
 14  java.lang.String    1  300 CHAR
 15  java.lang.String   12  300 VARCHAR 
 16  java.sql.Date   91  10 DATE
 17  java.sql.Time   92  8 TIME 
 18  java.sql.Date   91  4 YEAR
 19  java.sql.Timestamp   93  19 TIMESTAMP
 20  java.sql.Timestamp    93  19  DATETIME
 21  java.lang.String   12  255 TINYBLOB
 22  java.lang.String     -1  65535 TEXT
 23  java.lang.String     -1  16777215 MEDIUMBLOB
 24  java.lang.String     -1  -1 TEXT
 25  java.lang.String      1  3 CHAR
 26  java.lang.String      1  3 CHAR

           

    

  

   

SQLServer***********************************

0:  java.lang.Integer  ColumnType:4  11  int identity

1:  java.lang.Long    ColumnType:-5  20  bigint

2:  byte[]       ColumnType:-2  100  binary

3:  java.lang.Boolean  ColumnType:-7  1  bit

4:  java.lang.String   ColumnType:1  10  char

5:  java.sql.Timestamp  ColumnType:93  23  datetime

6:  java.sql.Timestamp  ColumnType:93  23  datetime

7:  java.math.BigDecimal ColumnType:3  20  decimal

8:  java.lang.Double   ColumnType:6  22  float

9:  byte[]       ColumnType:-4 2147483647  image

10:  java.math.BigDecimal ColumnType:3  21  money

11:  java.lang.String   ColumnType:1  10  nchar

12:  java.lang.String   ColumnType:-1 1073741823  ntext

13:  java.math.BigDecimal ColumnType:2  20  numeric

14:  java.lang.String   ColumnType:12  50  nvarchar

15:  java.lang.Float   ColumnType:7  13  real

16:  java.sql.Timestamp  ColumnType:93  16  smalldatetime

17:  java.lang.Integer  ColumnType:5   6  smallint

18:  java.math.BigDecimal ColumnType:3  12  smallmoney

19:  java.lang.String   ColumnType:12 8000  sql_variant

20:  java.lang.String   ColumnType:-1 2147483647  text

21:  byte[]       ColumnType:-2  16  timestamp

22:  java.lang.Integer  ColumnType:-6  3  tinyint

23:  java.lang.String   ColumnType:1  36  uniqueidentifier

24:  byte[]       ColumnType:-3 100  varbinary

25:  java.lang.String   ColumnType:12  50  varchar

***********************************

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

由MySQL支持的列类型列在下面。下列代码字母用于描述中:

M指出最大的显示尺寸。最大的合法的显示尺寸是 255 。D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。方括号(“[”和“]”)指出可选的类型修饰符的部分。

注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。

  • TINYINT[(M)] [UNSIGNED] [ZEROFILL]一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。
  • SMALLINT[(M)] [UNSIGNED] [ZEROFILL]一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。
  • MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。
  • INT[(M)] [UNSIGNED] [ZEROFILL]一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。
  • INTEGER[(M)] [UNSIGNED] [ZEROFILL]这是INT的一个同义词。
  • BIGINT[(M)] [UNSIGNED] [ZEROFILL]

一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到

18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<= 24,对一个双精度浮点数,是在25和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和 DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT (precision)总是有2位小数。该句法为了ODBC兼容性而提供。

  • FLOAT[(M,D)] [ZEROFILL]一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0和1.175494351E- 38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24的一个参数表示一个单精密浮点数字。
  • DOUBLE[(M,D)] [ZEROFILL]一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E- 308、0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。
  • DOUBLE PRECISION[(M,D)] [ZEROFILL]
  • REAL[(M,D)] [ZEROFILL]这些是DOUBLE同义词。
  • DECIMAL[(M[,D])] [ZEROFILL]一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的 DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D被省略,它被设置为0。如果M被省掉,它被设置为10。注意,在MySQL3.22里, M参数包括符号和小数点。
  • NUMERIC(M,D) [ZEROFILL]这是DECIMAL的一个同义词。DATE一个日期。支持的范围是’1000-01-01′到’9999-12-31′。MySQL以’YYYY-MM-DD’格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。
  • DATETIME一个日期和时间组合。支持的范围是’1000-01-01 00:00:00′到’9999-12-3123:59:59′。MySQL以’YYYY-MM-DDHH:MM:SS’格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。
  • TIMESTAMP[(M)]一个时间戳记。范围是’1970 -01-0100:00:00′到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或 YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。TIME一个时间。范围是’-838:59:59′到’838:59:59′。MySQL以’HH:MM:SS’格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。
  • YEAR[(2|4)]一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069(70-69)。 MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类型。)
  • CHAR(M) [BINARY]一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1~255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。NATIONALCHAR(短形式NCHAR)是ANSISQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。
  • [NATIONAL] VARCHAR(M) [BINARY]一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~ 255个字符。VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。 VARCHAR是CHARACTERVARYING一个缩写。
  • TINYBLOB
    TINYTEXT
    一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。
  • BLOB
    TEXT
    一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。
  • MEDIUMBLOB
    MEDIUMTEXT
    一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
  • LONGBLOB
    LONGTEXT
    一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。
  • ENUM(’value1′,’value2′,…)枚举
    一个仅有一个值的字符串对象,这个值式选自与值列表’value1′、’value2′, …,或NULL。一个ENUM最多能有65535不同的值。
  • SET(’value1′,’value2′,…)一个集合
    能有零个或多个值的一个字符串对象,其中每一个必须从值列表’value1′, ‘value2′, …选出。一个SET最多能有64个成员。

数据库、Java与Hibernate数据类型对照的更多相关文章

  1. java mysql 数据类型对照

    java mysql 数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang. ...

  2. java数据类型,hibernate数据类型,标准sql数据类型之间的对应表

    Hibernate API简介 其接口分为以下几类: l         提供访问数据库的操作的接口: l         用于配置Hibernate的接口: l         回调接口 l     ...

  3. Java MySQL数据类型对照

    Java MySQL数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             varchar L+N VARCHAR java.lang.S ...

  4. Java,Hibernate,标准sql数据类型之间的对应表

    (2010-07-14 19:53:50) 转载▼ 标签: 杂谈 分类: JAVA Hibernate API简介 其接口分为以下几类: l         提供访问数据库的操作的接口: l      ...

  5. 【转】Java MySQL数据类型对照

    Java MySQL数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.S ...

  6. Java的基本数据类型与转换

    1.1 Java为什么需要保留基本数据类型 http://www.importnew.com/11915.html 基本数据类型对大多数业务相关或网络应用程序没有太大的用处,这些应用一般是采用客户端/ ...

  7. 在C#项目中需要用double类型操作MSSQL float类型数据(附C#数据类型和SQL数据类型对照)

    C#操作SQL Float类型,数据会多很多小数,原来是C#的float和sql的float类型不一致.以下是数据库中与C#中的数据类型对照. /// <summary> /// 数据库中 ...

  8. Java中基本数据类型的存储方式和相关内存的处理方式(java程序员必读经典)

    1.java是如何管理内存的 java的内存管理就是对象的分配和释放问题.(其中包括两部分) 分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对 ...

  9. Java的基本数据类型

    java的基本数据类型是四类八种: 整型 byte  1字节  8位 short 2字节 16位 int 4字节 32位 long   8字节 64位 在hibernate自动映射中会根据数字长度,选 ...

随机推荐

  1. Oracle 错误 maximum number of processes(150) exceeded 解决办法

    网上很多同行应该都遇到过这个问题,百度一搜 千篇一律的处理办法,就是加大进程数. 但是我这边情况不一样,因为我的Oracle 11g是早上刚装的,跟本没人用,我用PLSQL链接照样说不能链接. 我就在 ...

  2. 使用code::blocks搭建objective-c的IDE开发环境 支持 @interface

    网上有许多的关于 <使用code::blocks搭建objective-c的IDE开发环境>的文章. 大多是写了一个Helloworld 就结束了,今天试了试 添加了一个 @interfa ...

  3. Android WebView 笔记

    WebView(网络视图)能载入显示载入网页.将网页内容载入到手机client,它使用了WebKit渲染引擎载入显示网页,实现WebView有下面方法: 首先要实如今手机client显示必需要求注冊一 ...

  4. struts2 命名空间 namespace 学习

    默认的命名空间" namespace="" ". 根命名空间 " namespace="/" ". <packag ...

  5. Service Mesh服务网格新生代--Istio(转)

    万字解读:Service Mesh服务网格新生代--Istio  官网地址:https://preliminary.istio.io/zh/docs/concepts/security/ Servic ...

  6. 你很熟悉CSS,却没掌握这些CSS技巧

    转载来自 http://www.html5cn.org/article-9294-1.html 做前端开发的人都很熟悉CSS,一个漂亮的网页由HTML标签和控制这些标签布局的CSS组成,因此CSS在开 ...

  7. WPF之数据绑定

    WPF学习之数据绑定 1. Banding基础 WPF中的数据绑定提供了很强大的功能.与普通的WinForm程序相比,其绑定功能为我们提供了很多便利,例如Binding对象的自动通知/刷新,Conve ...

  8. Guava教程

    http://ifeve.com/google-guava/ github地址:https://github.com/google/guava

  9. [LintCode] 二叉树的前序遍历

    The recursive solution is trivial and I omit it here. Iterative Solution using Stack (O(n) time and ...

  10. 170306、wamp中的Apache开启gzip压缩提高网站的响应速度

    一个网站的响应速度决定该网站的人气和质量,所以wamp配置的服务器也需要支持giz压缩来提高网站的响应速度,如何开启wamp的gzip压缩呢,经过在网站查找资料结合自己服务器中的配置,现在将这个方法分 ...