基本 SQL Server、JDBC 和 Java 编程语言数据类型之间的默认映射:
| SQL Server 类型 | JDBC 类型 (java.sql.Types) | Java 语言类型 |
|---|---|---|
|
bigint |
BIGINT |
long |
|
timestamp binary |
BINARY |
byte[] |
|
bit |
BIT |
boolean |
|
char |
CHAR |
String |
|
decimal money smallmoney |
DECIMAL |
java.math.BigDecimal |
|
float |
DOUBLE |
double |
|
int |
INTEGER |
int |
|
image varbinary(max) |
LONGVARBINARY |
byte[] |
|
varchar(max) text |
LONGVARCHAR |
String |
|
nchar |
CHAR NCHAR (Java SE 6.0) |
String |
|
nvarchar |
VARCHAR NVARCHAR (Java SE 6.0) |
String |
|
nvarchar(max) ntext |
LONGVARCHAR LONGNVARCHAR (Java SE 6.0) |
String |
|
numeric |
NUMERIC |
java.math.BigDecimal |
|
real |
REAL |
float |
|
smallint |
SMALLINT |
short |
|
datetime smalldatetime |
TIMESTAMP |
java.sql.Timestamp |
|
varbinary udt |
VARBINARY |
byte[] |
|
varchar |
VARCHAR |
String |
|
tinyint |
TINYINT |
short |
|
uniqueidentifier |
CHAR |
String |
|
xml |
LONGVARCHAR SQLXML (Java SE 6.0) |
String SQLXML |
|
time |
TIME (1) |
java.sql.Time (1) |
|
date |
DATE |
java.sql.Date |
|
datetime2 |
TIMESTAMP |
java.sql.Timestamp |
|
datetimeoffset (2) |
microsoft.sql.Types.DATETIMEOFFSET |
microsoft.sql.DateTimeOffset |
在Mybatis也明文建议在映射字段数据时需要将JdbcType属性加上。这样相对来说是比较安全的。
如以下情况是在保证了前三种是不能为空的前提下,而后面几项为空时也不至于程序报错。
<insert id="saveInfos">
insert into student values (
#{id},
#{name},
#{age},
#{school,jdbcType=VARCHAR},
#{address,jdbcType=VARCHAR},
#{inTime,jdbcType=DATE},
#{identityNo,jdbcType=VARCHAR},
#{birthday,jdbcType=DATE}
)
</insert>
本文详细介绍了SQLServer数据库中的数据类型如何映射到Java编程语言中的数据类型,包括基本的数据类型如整数、浮点数、字符串、日期等,并提供了在Mybatis框架中使用JdbcType属性进行安全映射的示例。
927

被折叠的 条评论
为什么被折叠?



