如果我的SQL Server 2012的名称是JOSEAN\REGULUS
,我的连接字符串是什么?
"jdbc:sqlserver://JOSEAN\REGULUS;databasename = BD12272"
但是,它导致了编译错误:
非法转义字符
这是如何引起的?如何解决?
答案 0 :(得分:1)
以反斜杠(\)开头的字符是转义序列并且具有 编译器的特殊含义。下表显示了Java 转义序列:
- \ t 此时在文字中插入标签。
- \ b 此时在文本中插入退格。
- \ n 此时在文字中插入换行符。
- \ r 此时在文本中插入回车符。
- \ f 此时在文本中插入换页。
- \'此时在文字中插入单引号字符。
- \“此时在文字中插入双引号字符。
- \\ 此时在文本中插入反斜杠字符。
您的连接字符串有反斜杠,因此java需要转义序列而 \ R 不是(非法转义字符)。
因此,您必须转义反斜杠,连接字符串应如下所示:
"jdbc:sqlserver://JOSEAN\\REGULUS;databasename = BD12272"
答案 1 :(得分:0)
请改为尝试:
"jdbc:sqlserver://JOSEAN;instanceName=REGULUS;databaseName=BD12272"