JDBC连接字符串SQL Server与JSP导致“非法转义字符”错误

时间:2013-11-23 12:06:41

标签: java jsp jdbc sql-server-2012

如果我的SQL Server 2012的名称是JOSEAN\REGULUS,我的连接字符串是什么?

"jdbc:sqlserver://JOSEAN\REGULUS;databasename = BD12272"

但是,它导致了编译错误:

  

非法转义字符

这是如何引起的?如何解决?

2 个答案:

答案 0 :(得分:1)

java documentation说:

  

以反斜杠(\)开头的字符是转义序列并且具有   编译器的特殊含义。下表显示了Java   转义序列:

     
      
  • \ t 此时在文字中插入标签。
  •   
  • \ b 此时在文本中插入退格。
  •   
  • \ n 此时在文字中插入换行符。
  •   
  • \ r 此时在文本中插入回车符。
  •   
  • \ f 此时在文本中插入换页。
  •   
  • \'此时在文字中插入单引号字符。
  •   
  • \“此时在文字中插入双引号字符。
  •   
  • \\ 此时在文本中插入反斜杠字符。
  •   

您的连接字符串有反斜杠,因此java需要转义序列而 \ R 不是(非法转义字符)。

因此,您必须转义反斜杠,连接字符串应如下所示:

"jdbc:sqlserver://JOSEAN\\REGULUS;databasename = BD12272"

答案 1 :(得分:0)

请改为尝试:

"jdbc:sqlserver://JOSEAN;instanceName=REGULUS;databaseName=BD12272"