Mysql/SQLServer数据类型与java基本数据类型的对应

问题描述:

假如现在你要对mysql数据库进行插入操作。因为要插入很多数据,为了效率,因此,你创建了一个PreparedStatement:insert into table values(?,?,?,?,?)

其中table表各列的数据类型分别为INTEGER,BIGINT,CHAR,TEXT,BINARY

现在你要向创建的PreparedStatement中的五个 ? 赋值。你已经知道PreparedStatement类有setBlog()、setBoolean()、setInt()、setDate()、setFloat()等等set方法,但是当你要向一个Mysql数据类型为BINARY的列赋值是,你不知道用PreparedStatement类的哪个set方法,setInt()?setString?还是setBytes()?没错,是setBytes()方法。可是如果mysql类型是decimal呢?是image呢?是bit呢?这个时候,如果你手里有一张Mysql/SQLServer数据类型与java基本数据类型的对应关系的表,那么一切问题都迎刃而解了。

好了,废话不多说,下面的列表就给出了Mysql/SQLServer数据类型与java基本数据类型的对应,而且给出了用整型表示的列类型和列名。有了这张表,以后调用set方法就有据可循了:

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

列 ClassName

ColumnType

DisplaySize

TypeName

0: java.lang.Integer

ColumnType:4

11

INTEGER

1: java.lang.Integer

ColumnType:-6

4

TINYINT

2: java.lang.String

ColumnType:12

0

UNKNOWN

3: java.lang.Boolean

ColumnType:-7

1

TINYINT

4: java.lang.Integer

ColumnType:5

6

SMALLINT

5: java.lang.Integer

ColumnType:4

9

MEDIUMINT

6: java.lang.Integer

ColumnType:4

11

INTEGER

7: java.lang.Long

ColumnType:-5

20

BIGINT

8: java.lang.Double

ColumnType:8

22

DOUBLE

9: java.lang.Double

ColumnType:8

22

DOUBLE

10: java.lang.Float

ColumnType:7

12

FLOAT

11: java.lang.String

ColumnType:12

11

UNKNOWN

12: java.lang.String

ColumnType:12

11

UNKNOWN

13: java.lang.String

ColumnType:1

300

CHAR

14: java.lang.String

ColumnType:12

300

VARCHAR

15: java.sql.Date

ColumnType:91

10

DATE

16: java.sql.Time

ColumnType:92

8

TIME

17: java.sql.Date

ColumnType:91

4

YEAR

18: java.sql.Timestamp

ColumnType:93

19

TIMESTAMP

19: java.sql.Timestamp

ColumnType:93

19

DATETIME

20: [B

ColumnType:-3

255

TINYBLOB

21: [B

ColumnType:-4

65535

BLOB

22: [B

ColumnType:-4

16777215

MEDIUMBLOB

23: [B

ColumnType:-4

-1

BLOB

24: java.lang.String

ColumnType:12

255

TINYBLOB

25: java.lang.String

ColumnType:-1

65535

TEXT

26: java.lang.String

ColumnType:-1

16777215

MEDIUMBLOB

27: java.lang.String

ColumnType:-1

-1

TEXT

28: java.lang.String

ColumnType:1

3

CHAR

29: java.lang.String

ColumnType:1

3

CHAR

****************************************************MSSQL*******************************************

列 ClassName

ColumnType

DisplaySize

TYPENAME

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