Java數據類型 |
Hibernate數據類型 |
標準SQL數據類型 (PS:對於不一樣的DB可能有所差別) |
byte、java.lang.Byte | byte | TINYINT |
short、java.lang.Short | short | SMALLINT |
int、java.lang.Integer | integer | INGEGER |
long、java.lang.Long | long | BIGINT |
float、java.lang.Float | float | FLOAT |
double、java.lang.Double | double | DOUBLE |
java.math.BigDecimal | big_decimal | NUMERIC |
char、java.lang.Character | character | CHAR(1) |
boolean、java.lang.Boolean | boolean | BIT |
java.lang.String | string | VARCHAR |
boolean、java.lang.Boolean | yes_no | CHAR(1)('Y'或'N') |
boolean、java.lang.Boolean | true_false | CHAR(1)('Y'或'N') |
java.util.Date、java.sql.Date | date | DATE |
java.util.Date、java.sql.Time | time | TIME |
java.util.Date、java.sql.Timestamp | timestamp | TIMESTAMP |
java.util.Calendar | calendar | TIMESTAMP |
java.util.Calendar | calendar_date | DATE |
byte[] | binary | VARBINARY、BLOB |
java.lang.String | text | CLOB |
java.io.Serializable | serializable | VARBINARY、BLOB |
java.sql.Clob | clob | CLOB |
java.sql.Blob | blob | BLOB |
java.lang.Class | class | VARCHAR |
java.util.Locale | locale | VARCHAR |
java.util.TimeZone | timezone | VARCHAR |
java.util.Currency | currency | VARCHAR |
在hibernate中類型的轉換示例: java
registerHibernateType(Types.DECIMAL, Hibernate.BIG_INTEGER.getName());
registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());
registerHibernateType(Types.REAL, Hibernate.FLOAT.getName());
registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName()); sql
下面是SQLSERVER數據類型詳細介紹 數據庫
數據類型
|
類型
|
描 述
|
bit
|
整型
|
bit 數據類型是整型,其值只能是0、1或空值。這種數據類型用於存儲只有兩種可能值的數據,如Yes 或No、True 或Fa lse 、On 或Off |
int
|
整型
|
int 數據類型能夠存儲從- 231(-2147483648)到231 (2147483 647)之間的整數。存儲到數據庫的幾乎全部數值型的數據均可以用這種數據類型。這種數據類型在數據庫裏佔用4個字節 |
smallint
|
整型
|
smallint 數據類型能夠存儲從- 215(-32768)到215(32767)之間的整數。這種數據類型對存儲一些常限定在特定範圍內的數值型數據很是有用。這種數據類型在數據庫裏佔用2 字節空間 |
tinyint
|
整型
|
tinyint 數據類型能存儲從0到255 之間的整數。它在你只打算存儲有限數目的數值時頗有用。 這種數據類型在數據庫中佔用1 個字節 |
numeric
|
精確數值型
|
numeric數據類型與decimal 型相同 |
decimal
|
精確數值型
|
decimal 數據類型能用來存儲從-1038-1到1038-1的固定精度和範圍的數值型數據。使用這種數據類型時,必須指定範圍和精度。 範圍是小數點左右所能存儲的數字的總位數。精度是小數點右邊存儲的數字的位數 |
money
|
貨幣型
|
money 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-9220億到9220 億之間的數據,精確到貨幣單位的萬分之一 |
smallmoney
|
貨幣型
|
smallmoney 數據類型用來表示錢和貨幣值。這種數據類型能存儲從-214748.3648 到214748.3647 之間的數據,精確到貨幣單位的萬分之一 |
float
|
近似數值型
|
float 數據類型是一種近似數值類型,供浮點數使用。說浮點數是近似的,是由於在其範圍內不是全部的數都能精確表示。浮點數能夠是從-1.79E+308到1.79E+308 之間的任意數 |
real
|
近似數值型
|
real 數據類型像浮點數同樣,是近似數值類型。它能夠表示數值在-3.40E+38到3.40E+38之間的浮點數 |
datetime
|
日期時間型
|
datetime數據類型用來表示日期和時間。這種數據類型存儲從1753年1月1日到9999年12月3 1日間全部的日期和時間數據, 精確到三百分之一秒或3.33毫秒 |
Smalldatetime
|
日期時間型
|
smalldatetime 數據類型用來表示從1900年1月1日到2079年6月6日間的日期和時間,精確到一分鐘 |
cursor
|
特殊數據型
|
cursor 數據類型是一種特殊的數據類型,它包含一個對遊標的引用。這種數據類型用在存儲過程當中,並且建立表時不能用 |
timestamp
|
特殊數據型
|
timestamp 數據類型是一種特殊的數據類型,用來建立一個數據庫範圍內的惟一數碼。 一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。儘管它的名字中有「time」, 但timestamp列不是人們可識別的日期。在一個數據庫裏,timestamp值是惟一的 |
Uniqueidentifier
|
特殊數據型
|
Uniqueidentifier數據類型用來存儲一個全局惟一標識符,即GUID。GUID確實是全局惟一的。這個數幾乎沒有機會在另外一個系統中被重建。可使用NEWID 函數或轉換一個字符串爲惟一標識符來初始化具備惟一標識符的列 |
char
|
字符型
|
char數據類型用來存儲指定長度的定長非統一編碼型的數據。當定義一列爲此類型時,你必須指定列長。當你總能知道要存儲的數據的長度時,此數據類型頗有用。例如,當你按郵政編碼加4個字符格式來存儲數據時,你知道總要用到10個字符。此數據類型的列寬最大爲8000 個字符 |
varchar
|
字符型
|
varchar數據類型,同char類型同樣,用來存儲非統一編碼型字符數據。與char 型不同,此數據類型爲變長。當定義一列爲該數據類型時,你要指定該列的最大長度。 它與char數據類型最大的區別是,存儲的長度不是列長,而是數據的長度 |
text
|
字符型
|
text 數據類型用來存儲大量的非統一編碼型字符數據。這種數據類型最多能夠有231-1或20億個字符 |
nchar
|
統一編碼字符型
|
nchar 數據類型用來存儲定長統一編碼字符型數據。統一編碼用雙字節結構來存儲每一個字符,而不是用單字節(普通文本中的狀況)。它容許大量的擴展字符。此數據類型能存儲4000種字符,使用的字節空間上增長了一倍 |
nvarchar
|
統一編碼字符型
|
nvarchar 數據類型用做變長的統一編碼字符型數據。此數據類型能存儲4000種字符,使用的字節空間增長了一倍 |
ntext
|
統一編碼字符型
|
ntext 數據類型用來存儲大量的統一編碼字符型數據。這種數據類型能存儲230 -1或將近10億個字符,且使用的字節空間增長了一倍 |
binary
|
二進制數據類型
|
binary數據類型用來存儲可達8000 字節長的定長的二進制數據。當輸入表的內容接近相同的長度時,你應該使用這種數據類型 |
varbinary
|
二進制數據類型
|
varbinary 數據類型用來存儲可達8000 字節長的變長的二進制數據。當輸入表的內容大小可變時,你應該使用這種數據類型 |
image
|
二進制數據類型
|
image 數據類型用來存儲變長的二進制數據,最大可達231-1或大約20億字節 |