`

JDBC SQL Server 参数类型

阅读更多

    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 字符串数据类型为 CHARVARCHARLONGVARCHAR

<!---->
类型 说明

Fixed-length

SQL Server charnchar 数据类型直接映射到 JDBC CHAR 类型。这些都是在列具有 SET ANSI_PADDING ON 的情况下,具有由服务器提供的填充的固定长度的类型。对于 nchar,填充始终是打开的,但对于 char,在未填充服务器字符列的情况下,JDBC 驱动程序将添加填充。

Variable-length

SQL Server varcharnvarchar 类型直接映射到 JDBC VARCHAR 类型。

Long

SQL Server textntext 类型映射到 JDBC LONGVARCHAR 类型。对于 SQL Server 2005 来说,这些类型已过时,因此应改用大值类型。

针对 textntext 服务器列使用 update<Numeric Type>updateObject (int, java.lang.Object) 方法时将失败。然而,对于 textntext 服务器列,支持将 setObject 方法用于指定的字符转换类型。

二进制字符串类型

JDBC 二进制字符串类型为 BINARYVARBINARYLONGVARBINARY

<!---->
类型 说明

固定长度

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 moneysmallmoney 类型,这些类型是特定的固定精度的十进制类型,分别以 8 个字节和 4 个字节进行存储。

近似数字类型

JDBC 近似数值数据类型为 REALDOUBLEFLOAT

<!---->
类型 说明

REAL

JDBC REAL 类型具有 7 位精度(单精度)并直接映射到 SQL Server real 类型。

DOUBLE

JDBC DOUBLE 类型具有 15 位精度(双精度)并直接映射到 SQL Server float 类型。JDBC FLOAT 类型是 DOUBLE 的同义词。由于 FLOATDOUBLE 之间可能存在冲突,因此 DOUBLE 为首选类型。

日期时间类型

JDBC TIMESTAMP 类型映射到 SQL Server datetimesmalldatetime 类型。datetime 类型以两个 4 字节整数进行存储。smalldatetime 类型可存放相同的信息(日期和时间),但精度较低,为两个 2 字节的小整数。

Note注意:

SQL Server timestamp 类型是固定长度的二进制字符串类型。它不映射到任何 JDBC 时间类型:DATETIMETIMESTAMP

自定义类型映射

JDBC 驱动程序中未实现将 SQLData 接口用于 JDBC 高级类型(UDT、Struct 等)的 JDBC 自定义类型映射功能。

另请参见

2
0
分享到:
评论

相关推荐

    jdbc sqlserver2014

    标题中的"jdbc sqlserver2014"指的是Java Database Connectivity (JDBC) 驱动程序,用于连接Java应用程序和Microsoft SQL Server 2014数据库。SQL Server 2014是微软的一个关系型数据库管理系统,提供了高性能、可...

    sql server2000 jdbc

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDB"; String user = "username"; String password = "password"; Connection conn = DriverManager.getConnection(url, user, password); ``` ...

    JDBC SQL Server 连接Jar包

    String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String user = "myUsername"; String password = "myPassword"; Connection conn = DriverManager.getConnection(url, user, ...

    适用SQL Server 2016版本的数据库加载驱动包jdbc

    String url = "jdbc:sqlserver://localhost:1433;databaseName=yourDatabase"; String username = "yourUsername"; String password = "yourPassword"; Connection conn = DriverManager.getConnection(url, ...

    jdbc sqlserver 驱动2.0

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=mydb;user=myuser;password=mypassword"); ``` 参数说明: - `localhost`: 数据库服务器地址。 - `1433`: 默认...

    jdbc for sqlserver

    **JDBC for SQLServer:连接数据库的艺术** 在Java编程领域,JDBC(Java Database Connectivity)是一种标准接口,它允许Java应用程序与各种类型的数据库进行交互。SQLServer是Microsoft公司推出的一款关系型数据库...

    sqlserver 2000 8版本jdbc驱动

    标题中的"sqlserver 2000 8版本jdbc驱动"指的是针对SQLServer 2000 8.0版的特定JDBC驱动,这是为了确保Java应用程序能够正确地连接到这个特定版本的数据库。在SQLServer 2000的生命周期内,存在多个版本,每个版本...

    kettle链接SQL server驱动 sqljdbc

    `jdbc:sqlserver://&lt;hostname&gt;:;databaseName=;user=;password=&lt;password&gt;` 6. 在“JDBC驱动”部分,选择解压后的sqljdbc4.jar或sqljdbc.jar的路径,并将其添加到Kettle的类路径中。 确保正确配置这些参数后,...

    jdbc sqlserver驱动包

    "jdbc sqlserver驱动包" 这个标题明确指出了我们要讨论的核心内容,即用于连接SQL Server数据库的Java Database Connectivity (JDBC) 驱动程序。JDBC是Java编程语言中用于与各种数据库进行交互的一组接口和类,而SQL...

    Matlab中使用JDBC访问SQL Server

    databaseUrl = 'jdbc:sqlserver://localhost:1433;'; % JDBC driver name driver = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'; % Database credentials username = 'godman'; password = 'godman'; ...

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    本文将深入探讨标题和描述中提到的“com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作”这一异常,以及如何在使用Hibernate、Struts进行分页时避免这一问题。我们将从异常的根本原因...

    jdbc+SqlServer

    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驱动

    总的来说,JDBC SQLServer 2008驱动使得Java开发者能够充分利用SQL Server 2008的强大功能,同时保持代码的可移植性和平台独立性。通过正确配置和使用sqljdbc4.jar,我们可以构建高效、可靠的Java应用,实现与SQL ...

    jdbc_sqlserver

    本示例"jdbc_sqlserver"专注于使用JDBC连接Microsoft SQL Server数据库,这在Java开发中是一个常见的需求。 1. **JDBC基础知识**: JDBC是Java API的一部分,它提供了连接数据库的统一方式,无论数据库是Oracle、...

    适用SQL Server 2016版本的数据库加载驱动包——sqljdbc42.jar

    &lt;groupId&gt;com.microsoft.sqlserver&lt;/groupId&gt; &lt;artifactId&gt;mssql-jdbc &lt;version&gt;6.x.x.jre8&lt;/version&gt; &lt;!-- 根据实际版本号替换 --&gt; ``` 确保版本号与`sqljdbc42.jar`的实际版本匹配,以便获得最佳的兼容性和...

    JAVA JDBC连接 SQLServer2012 Maven项目

    在实际应用中,根据存储过程的参数类型和数量,你需要适当调整`CallableStatement`的设置。例如,如果存储过程有输入参数,可以使用`setInt`, `setString`等方法;如果有输出参数,使用`registerOutParameter`注册...

    SqlServer2000的驱动sqljdbc4-3.0.jar

    String url = "jdbc:sqlserver://服务器地址:端口;databaseName=数据库名"; String username = "用户名"; String password = "密码"; Connection conn = DriverManager.getConnection(url, username, password); ```...

    SQL Server jdbc驱动包

    在实际开发中,确保正确配置JDBC驱动类路径,并在Java代码中加载驱动(例如,`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`),然后即可按照JDBC规范进行数据库操作。同时,根据应用需求,可以...

    sqlserver2008 jar驱动(Microsoft SQL Server JDBC Driver).rar

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://servername:port;databaseName=dbname;user=username;password=password;"); ``` 6. **JDBC连接池**: 在实际应用中,为了提高性能和资源...

    sql server2008 jdbc驱动

    接着,在Java代码中加载驱动,通常使用`Class.forName()`方法指定驱动类名(如`com.microsoft.sqlserver.jdbc.SQLServerDriver`)。 3. **连接数据库**: 使用`java.sql.DriverManager.getConnection()`方法建立到...

Global site tag (gtag.js) - Google Analytics