gpt4 book ai didi

java - 我应该使用 JDBC getNString() 而不是 getString() 吗?

转载 作者:搜寻专家 更新时间:2023-10-30 21:09:58 25 4
gpt4 key购买 nike

我们正在构建一个由我们使用 JDBC 访问的 Oracle 数据库支持的 Java 应用程序(驱动程序 ojdbc6.jarorai18n.jar)。数据库架构主要使用 NVARCHAR2 数据类型存储文本列。

JDBC documentation对于 JDBC ResultSet 表示 getNString() 特别适用于 NCHAR、NVARCHAR 等数据类型,但目前我们只使用 getString ()

这似乎工作正常,所以我想知道为什么我应该使用 getNString() 而不是 getString()。如果输入非 ASCII 字符,getString() 是否会开始失败,或者 Oracle JDBC 驱动程序是否对我应该使用哪种方法漠不关心?

编辑:似乎它可能依赖于数据库:SQL Server doesn't seem to mind which you use ,取决于连接参数。有没有人有任何关于 Oracle 的具体信息?

最佳答案

我已经对我们的应用程序进行了测试,似乎 getNString() 对于 Java 6、JDBC 6、Oracle JDBC 6 驱动程序和 Oracle 11.1.0.6.0 是不必要的。我使用的测试字符串是“Δ, Й, ק, م, ๗, あ, 叶, 叶, and 말”,复制自http://en.wikipedia.org/wiki/Unicode .

我们的大部分数据访问都是通过存储过程完成的。 Java 能够通过 setObject()getString() 正确设置和检索上述测试字符串(出于抽象原因,不是 setString()) ,从接口(interface)中收集数据并按预期将其写回接口(interface)。

因此 getString() 在 Oracle 11g 中对 Unicode 数据工作正常(就像上面链接中的 SQL Server)所以我们将继续使用它而不是 getNString().

关于java - 我应该使用 JDBC getNString() 而不是 getString() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5892163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com