JDBC 驱动程序的国际功能

Microsoft SQL Server 2005 JDBC Driver 的国际功能包括:

  • 通过使用与 SQL Server 相同的语言来为用户提供完全本地化的体验。

  • 对于受区域设置影响的 SQL Server 数据,支持 Java 1.4 级的语言转换。

  • 无论使用何种操作系统,都支持国际语言。

处理字符数据

默认情况下,Java 中的字符数据作为 Unicode 进行处理;Java String 对象表示 Unicode 字符数据。在 JDBC 驱动程序中,唯一可以不遵守此规则的是 ASCII 流 getter 和 setter 方法,这属于比较特殊的情况,因为这些方法使用的字节流带有单个已知代码页 (ASCII) 的隐式假定。

此外,JDBC 驱动程序提供了 sendStringParametersAsUnicode 连接字符串属性。此属性可用于指定作为 ASCII 而不是 Unicode 来发送的字符数据的预定义参数。

有关 sendStringParametersAsUnicode 连接字符串属性的详细信息,请参阅设置连接属性

驱动程序传入转换

来自服务器的 Unicode 文本数据不是必须要转换的数据。它将作为 Unicode 直接进行传递。来自服务器的非 Unicode 数据从数据库或列级别的数据代码页直接转换为 Unicode。JDBC 驱动程序将使用 Java 虚拟机 (JVM) 转换例程执行这些转换。这些转换将通过所有类型化 String 和 Character 流 getter 方法得到执行。

如果 JVM 无法对来自数据库的数据提供相应的代码页支持,则 JDBC 驱动程序将引发“Java 环境不支持 XXX 代码页”异常。

驱动程序传出转换

从驱动程序发送至服务器的字符数据以 Unicode 开头。Unicode 传递到服务器,如果目标列不是 Unicode 类型列(ncharnvarcharntext),则将在服务器中执行适当的转换。在此情况下,对于 String 和 Character 流,Unicode 文本将通过 JDBC 驱动程序 setter 方法和 updater 方法进行传递。

格式问题

对于日期、时间和货币,将使用 Locale 对象在 Java 语言级别执行本地化数据的所有格式设置,并针对 DateCalendarNumber 数据类型执行各种不同的格式设置方法。只有在极少数的情况下,JDBC 驱动程序需要传递本地化格式中受区域设置影响的数据,同时需要结合默认的 JVM 区域设置来使用相应的格式化程序。

非 Unicode 参数

作为性能方面的一项增强功能,可以通过设置 sendStringParametersAsUnicode 连接字符串属性将 String 参数以非 Unicode 格式传递到 SQL Server。sendStringParametersAsUnicode 的默认设置为“true”,这意味着 String 参数将作为 Unicode 进行发送。如果 sendStringParametersAsUnicode 设置为“false”,则连接上的所有 String 参数将使用数据库默认的排序规则发送到服务器。

另请参见

其他资源

JDBC 驱动程序概述