我有一个关于将字符串插入SQL Server 2008 R2的问题。当我尝试插入带有一些国家字母的字符串时,会收到“?” 反而。
我知道N在字符串文字的开头添加将解决此问题,但是我正在使用JDBC准备的语句,如下所示:
N
INSERT INTO MyTable(col1, col2) VALUES (?,?);
我的问题是:如何添加此“ N”字母?我应该做这样的事情吗?
INSERT INTO MyTable(col1, col2) VALUES (N?,N?);
老实说,我不相信,因为这根本行不通。
根据@a_horse_with_no_name和@ gofr1编写的注释,有两种解决方案:
更改sendStringParametersAsUnicode-这将导致所有字符串都被视为“ N”个字符串(这是全局更改)
sendStringParametersAsUnicode
使用PreparedStatement.setNString()代替setString()-,这是“本地”更改。
PreparedStatement.setNString()
setString()
两者都有效-使用更适合您的需求的方法:)