我们将Oracle版本12.1.0.2.0与ojdbc7-1.0.jar
和JDK 8一起使用。
如果相关且使用oracle.jdbc.driver.OracleDriver
,我们将Hikari用作连接池
这是在Oracle中使用的recommended driver
符合Oracle数据库版本JDBC规范
带有JDK 7和JDK 8的12.1或12cR1 ojdbc7.jar
在Spring应用程序中,我们使用PreparedStatement
,并且我们希望将国家字符作为字符来支持。
我们使用setNString处理新查询/更新查询
将指定的参数设置为给定的String对象。驱动程序在将其发送到数据库时,将其转换为SQL NCHAR或NVARCHAR或LONGNVARCHAR值(取决于参数的大小,相对于驱动程序对NVARCHAR值的限制)。
我们可以使用setString
而不更改代码来为现有代码添加支持(平台/配置级别)吗?
try (PreparedStatement ps = conn.prepareStatement(SQL_STATEMENT)) {
ps.setString(1, THAI_TEXT);
}
尽管列定义为setString
,但目前NVARCHAR2(50)
不处理国家字符(另存为?)
是否必须将所有setString
替换为setNString
?
或者是否存在可以使用setString
添加国家支持的标志/属性/升级/修复?
答案 0 :(得分:1)
您可能不愿意使用oracle.jdbc.defaultNChar=true
,请参阅JDBC Guide中的19.2(但是我发现Oracle和JDBC API在这方面非常令人困惑,它应该与setString一起使用)