【问题标题】:Executing a sql server query containing clause " where col like N'myStr%' " from java using spring使用spring从java执行包含子句“ where col like N'myStr%'”的sql server查询
【发布时间】:2012-09-17 23:00:06
【问题描述】:

我的查询使用 sql server management studio。但是我无法让查询使用命名参数和 springsJDBCTemplate。

所以需要实际的 sql 才能正常工作:

select colA from table1 where colb like N'lem%'

以及我尝试过的方法:

String paramA = "N'lem%'";

select colA from table1 where colb like :paramA

我正在使用名为ParamterJDBCTemplate 的弹簧。 N 指定 nvarchar 和 unicode 编码,因为实际参数是用外语编码的,例如西里尔文。

【问题讨论】:

    标签: java sql-server spring unicode


    【解决方案1】:

    N' 在向 SSMS 中的文本 SQL 解析器呈现一些文本时很有用,但是当您通过 spring 使用参数化查询时,DON'T!字符串本身应该是 Unicode,框架通过将参数声明为 NVarchar 以及正确编组参数来为您处理它。

    String paramA = "lem%";
    

    我认为您甚至不应该在字符串中包含单引号,我知道您之所以包含单引号只是因为 N' 表示法。

    【讨论】:

      【解决方案2】:

      您可能想尝试

      的转义序列
      String paramA = "N\'lem%'";
      

      http://docs.oracle.com/javase/tutorial/java/data/characters.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-30
        • 1970-01-01
        • 2014-01-17
        • 1970-01-01
        • 1970-01-01
        • 2020-07-06
        • 2023-03-13
        • 1970-01-01
        相关资源
        最近更新 更多