检索 UNIQUEIDENTIFIER 作为小写字符串

问题描述 投票:0回答:1

我直接从 Java 应用程序使用 JDBC

PreparedStatement
,例如:

stmt = connection.prepareStatement("SELECT mycolumn FROM mytable WHERE ...");
...
String mycolumn = stmt.getString("mycolumn");

mycolumn
的类型是
UNIQUEIDENTIFIER
。这是 Microsoft SQL Server 支持的 128 位二进制数据类型,表示 UUID,会自动转换为字符串。

问题是,我想以小写形式检索该字符串。将 C# 与实体框架结合使用时,字符串始终为小写(如文档中所示)。但是,在 JDBC 中(使用 Microsoft 最新的 JDBC 驱动程序),它始终以大写形式显示。

我可以解决这个问题,例如

connection.prepareStatement("SELECT lower(mycolumn) FROM mytable WHERE ...")

但这会降低效率(这是一个对性能至关重要的应用程序),因为数据以字符串形式(36 字节 + 开销)而不是 16 字节二进制数传入。

另一种解决方法:

 stmt.getString("mycolumn").toLowercase()

但这比必要的处理更多,因为二进制数首先转换为大写,然后转换为小写。

有没有一个选项可以让

getString
方法直接返回小写字符串?

sql-server jdbc
1个回答
0
投票

您是否考虑过使用

getBytes
而不是
getString
?如果您对 Java 将 UNIQUEIDENTIFER 转换为字符串的方式不满意,请提供您自己的实现。

© www.soinside.com 2019 - 2024. All rights reserved.