jsp向MySql中插入時間

在做jsp項目的時候遇到一個問題,就是把java.util.Date類型的數據插入到Mysql中的時候,如果數據庫字段類型設置爲dateTime類型,數據庫中的時間就會變成“0000-00-00 00:00:00”,如果數據庫設置爲date類型數據庫中的時間就會是“0000-00-00”,經過百度發現Mysql數據庫中的date對應java中的時間類型爲java.sql.Date,Mysql數據庫中的dateTime對應java中的時間類型爲 java.sql.Timestamp,於是我將java中的時間類型全部改成java.sql.Date才解決問題。

爲了方便以後學習將MySql,Sql Server,Oracle三種常用數據庫的數據類型與java的數據類型對應關係整理如下:

MySql數據類型與Java數據類型的對應:

類型名稱

顯示長度

數據庫類型

JAVA類型

JDBC類型索引(int)

VARCHAR

L+N

VARCHAR

java.lang.String

12

CHAR

N

CHAR

java.lang.String

1

BLOB

L+N

BLOB

java.lang.byte[]

-4

TEXT

65535

VARCHAR

java.lang.String

-1

INTEGER

4

INTEGER UNSIGNED

java.lang.Long

4

TINYINT

3

TINYINT UNSIGNED

java.lang.Integer

-6

SMALLINT

5

SMALLINT UNSIGNED

java.lang.Integer

5

MEDIUMINT

8

MEDIUMINT UNSIGNED

java.lang.Integer

4

BIT

1

BIT

java.lang.Boolean

-7

BIGINT

20

BIGINT UNSIGNED

java.math.BigInteger

-5

FLOAT

4+8

FLOAT

java.lang.Float

7

DOUBLE

22

DOUBLE

java.lang.Double

8

DECIMAL

11

DECIMAL

java.math.BigDecimal

3

BOOLEAN

1

TINYINT



ID

11

PK (INTEGER UNSIGNED)

java.lang.Long

4

DATE

10

DATE

java.sql.Date

91

TIME

8

TIME

java.sql.Time

92

DATETIME

19

DATETIME

java.sql.Timestamp

93

TIMESTAMP

19

TIMESTAMP

java.sql.Timestamp

93

YEAR

4

YEAR

java.sql.Date

91

SQL Server數據類型與Java數據類型的對應:

Java數據類型
Hibernate數據類型
標準SQL數據類型(PS:對於不同的DB可能有所差異)
byte、java.lang.BytebyteTINYINT
short、java.lang.ShortshortSMALLINT
int、java.lang.IntegerintegerINGEGER
long、java.lang.LonglongBIGINT
float、java.lang.FloatfloatFLOAT
double、java.lang.DoubledoubleDOUBLE
java.math.BigDecimalbig_decimalNUMERIC
char、java.lang.CharactercharacterCHAR(1)
boolean、java.lang.BooleanbooleanBIT
java.lang.StringstringVARCHAR
boolean、java.lang.Booleanyes_noCHAR(1)('Y'或'N')
boolean、java.lang.Booleantrue_falseCHAR(1)('Y'或'N')
java.util.Date、java.sql.DatedateDATE
java.util.Date、java.sql.TimetimeTIME
java.util.Date、java.sql.TimestamptimestampTIMESTAMP
java.util.CalendarcalendarTIMESTAMP
java.util.Calendarcalendar_dateDATE
byte[]binaryVARBINARY、BLOB
java.lang.StringtextCLOB
java.io.SerializableserializableVARBINARY、BLOB
java.sql.ClobclobCLOB
java.sql.BlobblobBLOB
java.lang.ClassclassVARCHAR
java.util.LocalelocaleVARCHAR
java.util.TimeZonetimezoneVARCHAR
java.util.CurrencycurrencyVARCHAR


Oracle數據類型與java數據類型的對應:

SQL數據類型JDBC類型代碼標準的Java類型Oracle擴展的Java類型

1.0標準的JDBC類型:



CHAR

java.sql.Types.CHAR

java.lang.String

oracle.sql.CHAR

VARCHAR2

java.sql.Types.VARCHAR

java.lang.String

oracle.sql.CHAR

LONG

java.sql.Types.LONGVARCHAR

java.lang.String

oracle.sql.CHAR

NUMBER

java.sql.Types.NUMERIC

java.math.BigDecimal

oracle.sql.NUMBER

NUMBER

java.sql.Types.DECIMAL

java.math.BigDecimal

oracle.sql.NUMBER

NUMBER

java.sql.Types.BIT

boolean

oracle.sql.NUMBER

NUMBER

java.sql.Types.TINYINT

byte

oracle.sql.NUMBER

NUMBER

java.sql.Types.SMALLINT

short

oracle.sql.NUMBER

NUMBER

java.sql.Types.INTEGER

int

oracle.sql.NUMBER

NUMBER

java.sql.Types.BIGINT

long

oracle.sql.NUMBER

NUMBER

java.sql.Types.REAL

float

oracle.sql.NUMBER

NUMBER

java.sql.Types.FLOAT

double

oracle.sql.NUMBER

NUMBER

java.sql.Types.DOUBLE

double

oracle.sql.NUMBER

RAW

java.sql.Types.BINARY

byte[]

oracle.sql.RAW

RAW

java.sql.Types.VARBINARY

byte[]

oracle.sql.RAW

LONGRAW

java.sql.Types.LONGVARBINARY

byte[]

oracle.sql.RAW

DATE

java.sql.Types.DATE

java.sql.Date

oracle.sql.DATE

DATE

java.sql.Types.TIME

java.sql.Time

oracle.sql.DATE

TIMESTAMP

java.sql.Types.TIMESTAMP

javal.sql.Timestamp

oracle.sql.TIMESTAMP


2.0標準的JDBC類型:



BLOB

java.sql.Types.BLOB

java.sql.Blob

oracle.sql.BLOB

CLOB

java.sql.Types.CLOB

java.sql.Clob

oracle.sql.CLOB

用戶定義的對象

java.sql.Types.STRUCT

java.sql.Struct

oracle.sql.STRUCT

用戶定義的參考

java.sql.Types.REF

java.sql.Ref

oracle.sql.REF

用戶定義的集合

java.sql.Types.ARRAY

java.sql.Array

oracle.sql.ARRAY


Oracle擴展:



BFILE

oracle.jdbc.OracleTypes.BFILE

N/A

oracle.sql.BFILE

ROWID

oracle.jdbc.OracleTypes.ROWID

N/A

oracle.sql.ROWID

REF CURSOR

oracle.jdbc.OracleTypes.CURSOR

java.sql.ResultSet

oracle.jdbc.OracleResultSet

TIMESTAMP

oracle.jdbc.OracleTypes.TIMESTAMP

java.sql.Timestamp

oracle.sql.TIMESTAMP

TIMESTAMP WITH TIME ZONE

oracle.jdbc.OracleTypes.TIMESTAMPTZ

java.sql.Timestamp

oracle.sql.TIMESTAMPTZ

TIMESTAMP WITH LOCAL TIME ZONE

oracle.jdbc.OracleTypes.TIMESTAMPLTZ

java.sql.Timestamp

oracle.sql.TIMESTAMPLTZ

以上三個表格都是從別人那拷貝過來的,感謝三位博主。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章