小编典典

SQL Server Nvarchar和Java预准备语句

sql

我有一个关于将字符串插入SQL Server 2008 R2的问题。当我尝试插入带有一些国家字母的字符串时,会收到“?” 反而。

我知道N在字符串文字的开头添加将解决此问题,但是我正在使用JDBC准备的语句,如下所示:

INSERT INTO MyTable(col1, col2) VALUES (?,?);

我的问题是:如何添加此“ N”字母?我应该做这样的事情吗?

INSERT INTO MyTable(col1, col2) VALUES (N?,N?);

老实说,我不相信,因为这根本行不通。


阅读 165

收藏
2021-05-23

共1个答案

小编典典

根据@a_horse_with_no_name和@ gofr1编写的注释,有两种解决方案:

  1. 更改sendStringParametersAsUnicode-这将导致所有字符串都被视为“ N”个字符串(这是全局更改)

  2. 使用PreparedStatement.setNString()代替setString()-,这是“本地”更改。

两者都有效-使用更适合您的需求的方法:)

2021-05-23