1. ResultSet中对于getDouble,getFloat,getInt方法由于返回的是基本类型数据,所以null变为了0(如果值为 SQL NULL
,则返回值为 0
)。这给我们带来了不少麻烦。为了避免这个问题需要借助ResultSet#wasNull()方法
2. ResultSet#getDate。这个家伙返回的类型是java.sql.Date,数据库字段类型为datetime时返回来的数据只有年月日,用
ResultSet#getTimestamp才能返回完整的日期的和时间
3.注意数据库中的float类型,如果向数据库中插入记录时对于float类型字段需要使用double类型的参数,如果使用float类型的参数会导致精度问题。
SQL Server 类型
JDBC 类型 (java.sql.类型)
Java 语言类型
bigint
|
BIGINT
|
long
|
timestamp
binary
|
BINARY
|
byte[]
|
bit
|
BIT
|
Boolean
|
charnchar
|
CHAR
|
String
|
decimal
money
smallmoney
|
DECIMAL
|
java.math.BigDecimal
|
float
|
DOUBLE
|
double
|
int
|
INTEGER
|
int
|
image
|
LONGVARBINARY
|
byte[]
|
text
ntext
|
LONGVARCHAR
|
String
|
numeric
|
NUMERIC
|
java.math.BigDecimal
|
real
|
REAL
|
float
|
smallint
tinyint
|
SMALLINT
|
short
|
datetime
smalldatetime
|
TIMESTAMP
|
java.sql.Timestamp
|
varbinary
|
VARBINARY
|
byte[]
|
varchar
nvarchar
uniqueidentifier
|
VARCHAR
|
String
|
注意: JDBC 驱动程序目前不支持 SQL Server sqlvariant 数据类型。如果使用查询从包含 sqlvariant 数据类型列的表中检索数据,则会发生异常。
<!--Content type: DocStudio. Transform: devdiv2mtps.xslt.-->
Java 编程语言数据类型和 SQL Server 2005 数据类型之间存在很多差异。Microsoft SQL Server 2005 JDBC Driver 通过各种类型的转换来帮助消除这些差异。
字符类型
JDBC 字符串数据类型为 CHAR、VARCHAR 和 LONGVARCHAR。
<!---->
类型
说明
Fixed-length
|
SQL Server char 和 nchar 数据类型直接映射到 JDBC CHAR 类型。这些都是在列具有 SET ANSI_PADDING ON 的情况下,具有由服务器提供的填充的固定长度的类型。对于 nchar,填充始终是打开的,但对于 char,在未填充服务器字符列的情况下,JDBC 驱动程序将添加填充。
|
Variable-length
|
SQL Server varchar 和 nvarchar 类型直接映射到 JDBC VARCHAR 类型。
|
Long
|
SQL Server text 和 ntext 类型映射到 JDBC LONGVARCHAR 类型。对于 SQL Server 2005 来说,这些类型已过时,因此应改用大值类型。
针对 text 和 ntext 服务器列使用 update<Numeric Type> 和 updateObject (int, java.lang.Object) 方法时将失败。然而,对于 text 和 ntext 服务器列,支持将 setObject 方法用于指定的字符转换类型。
|
二进制字符串类型
JDBC 二进制字符串类型为 BINARY、VARBINARY 和 LONGVARBINARY。
<!---->
类型
说明
固定长度
|
SQL Server binary 类型直接映射到 JDBC BINARY 类型。这是在列具有 SET ANSI_PADDING ON 的情况下,具有由服务器提供填充的固定长度类型。没有填充服务器 char 列时,JDBC 驱动程序会添加填充。
SQL Server timestamp 类型是具有 8 个字节的固定长度的 JDBC BINARY 类型。
|
可变长度
|
SQL Server varbinary 类型映射到 JDBC VARBINARY 类型。
|
Long
|
SQL Server image 类型映射到 JDBC LONGVARBINARY 类型。对于 SQL Server 2005 来说,该类型已过时,因此应改用大值类型。
SQL Server 2005 中的 udt 类型作为 LONGBINARY 类型映射到 JDBC。
|
精确数字类型
JDBC 精确数字类型直接映射到其对应的 SQL Server 类型。
<!---->
类型
说明
BIT
|
JDBC BIT 类型表示可能是 0 或 1 的单个位。此类型映射到 SQL Server bit 类型。
|
TINYINT
|
JDBC TINYINT 类型表示单个字节。此类型映射到 SQL Server tinyint 类型。
|
SMALLINT
|
JDBC SMALLINT 类型表示有符号的 16 位整数。此类型映射到 SQL Server smallint 类型。
|
INTEGER
|
JDBC INTEGER 类型表示有符号的 32 位整数。此类型映射到 SQL Server int 类型。
|
BIGINT
|
JDBC BIGINT 类型表示有符号的 64 位整数。此类型映射到 SQL Server bigint 类型。
|
NUMERIC
|
JDBC NUMERIC 类型表示固定精度的十进制值,它可存放相同精度的值。NUMERIC 类型映射到 SQL Server numeric 类型。
|
DECIMAL
|
JDBC DECIMAL 类型表示固定精度的十进制值,它可存放至少具有指定精度的值。DECIMAL 类型映射到 SQL Server decimal 类型。
JDBC DECIMAL 类型还映射到 SQL Server money 和 smallmoney 类型,这些类型是特定的固定精度的十进制类型,分别以 8 个字节和 4 个字节进行存储。
|
近似数字类型
JDBC 近似数值数据类型为 REAL、DOUBLE 和 FLOAT。
<!---->
类型
说明
REAL
|
JDBC REAL 类型具有 7 位精度(单精度)并直接映射到 SQL Server real 类型。
|
DOUBLE
|
JDBC DOUBLE 类型具有 15 位精度(双精度)并直接映射到 SQL Server float 类型。JDBC FLOAT 类型是 DOUBLE 的同义词。由于 FLOAT 与 DOUBLE 之间可能存在冲突,因此 DOUBLE 为首选类型。
|
日期时间类型
JDBC TIMESTAMP 类型映射到 SQL Server datetime 和 smalldatetime 类型。datetime 类型以两个 4 字节整数进行存储。smalldatetime 类型可存放相同的信息(日期和时间),但精度较低,为两个 2 字节的小整数。
注意:
SQL Server timestamp 类型是固定长度的二进制字符串类型。它不映射到任何 JDBC 时间类型:DATE、TIME 或 TIMESTAMP。
|
自定义类型映射
JDBC 驱动程序中未实现将 SQLData 接口用于 JDBC 高级类型(UDT、Struct 等)的 JDBC 自定义类型映射功能。
另请参见
分享到:
相关推荐
标题中的"jdbc sqlserver2014"指的是Java Database Connectivity (JDBC) 驱动程序,用于连接Java应用程序和Microsoft SQL Server 2014数据库。SQL Server 2014是微软的一个关系型数据库管理系统,提供了高性能、可...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String user = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` ...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String user = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, user, ...
String url = "jdbc:sqlserver://localhost:1433;databaseName=yourDatabase"; String username = "yourUsername"; String password = "yourPassword"; Connection conn = DriverManager.getConnection(url, ...
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=mydb;user=myuser;password=mypassword"); ``` 参数说明: - `localhost`: 数据库服务器地址。 - `1433`: 默认...
**JDBC for SQLServer:连接数据库的艺术** 在Java编程领域,JDBC(Java Database Connectivity)是一种标准接口,它允许Java应用程序与各种类型的数据库进行交互。SQLServer是Microsoft公司推出的一款关系型数据库...
本文将深入探讨标题和描述中提到的“com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...
标题中的"sqlserver 2000 8版本jdbc驱动"指的是针对SQLServer 2000 8.0版的特定JDBC驱动,这是为了确保Java应用程序能够正确地连接到这个特定版本的数据库。在SQLServer 2000的生命周期内,存在多个版本,每个版本...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String user = "myUsername"; String password = "myPassword"; try (Connection conn = DriverManager.getConnection(url, user, ...
"jdbc sqlserver驱动包" 这个标题明确指出了我们要讨论的核心内容,即用于连接SQL Server数据库的Java Database Connectivity (JDBC) 驱动程序。JDBC是Java编程语言中用于与各种数据库进行交互的一组接口和类,而SQL...
`jdbc:sqlserver://<hostname>:;databaseName=;user=;password=<password>` 6. 在“JDBC驱动”部分,选择解压后的sqljdbc4.jar或sqljdbc.jar的路径,并将其添加到Kettle的类路径中。 确保正确配置这些参数后,...
databaseUrl = 'jdbc:sqlserver://localhost:1433;'; % JDBC driver name driver = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'; % Database credentials username = 'godman'; password = 'godman'; ...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String username = "myUser"; String password = "myPassword"; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");...
总的来说,JDBC SQLServer 2008驱动使得Java开发者能够充分利用SQL Server 2008的强大功能,同时保持代码的可移植性和平台独立性。通过正确配置和使用sqljdbc4.jar,我们可以构建高效、可靠的Java应用,实现与SQL ...
<groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc <version>6.x.x.jre8</version> <!-- 根据实际版本号替换 --> ``` 确保版本号与`sqljdbc42.jar`的实际版本匹配,以便获得最佳的兼容性和...
本示例"jdbc_sqlserver"专注于使用JDBC连接Microsoft SQL Server数据库,这在Java开发中是一个常见的需求。 1. **JDBC基础知识**: JDBC是Java API的一部分,它提供了连接数据库的统一方式,无论数据库是Oracle、...
Connection conn = DriverManager.getConnection("jdbc:sqlserver://servername:port;databaseName=dbname;user=username;password=password;"); ``` 6. **JDBC连接池**: 在实际应用中,为了提高性能和资源...
在实际应用中,根据存储过程的参数类型和数量,你需要适当调整`CallableStatement`的设置。例如,如果存储过程有输入参数,可以使用`setInt`, `setString`等方法;如果有输出参数,使用`registerOutParameter`注册...
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; try (Connection conn = DriverManager.getConnection(url, ...
String url = "jdbc:sqlserver://服务器地址:端口;databaseName=数据库名"; String username = "用户名"; String password = "密码"; Connection conn = DriverManager.getConnection(url, username, password); ```...