带有 JSP 的 JDBC 连接字符串 SQL Server 导致“非法转义字符”错误
Posted
技术标签:
【中文标题】带有 JSP 的 JDBC 连接字符串 SQL Server 导致“非法转义字符”错误【英文标题】:JDBC connection string SQL Server with JSP causes "Illegal escape character" error 【发布时间】:2013-11-23 12:06:40 【问题描述】:如果我的 SQL Server 2012 的名称是 JOSEAN\REGULUS
,我的连接字符串是什么?
"jdbc:sqlserver://JOSEAN\REGULUS;databasename = BD12272"
但是却导致编译错误:
非法转义字符
这是怎么引起的,我该如何解决?
【问题讨论】:
您遇到错误了吗? “没有结果”到底是什么意思? 如果你真的是在 JSP 中这样做,那就……不要。 【参考方案1】:java documentation 说:
以反斜杠 (\) 开头的字符是转义序列,具有 对编译器的特殊意义。下表显示了 Java 转义序列:
\t此时在文本中插入一个制表符。 \b 此时在文本中插入一个退格键。 \n 此时在文本中插入换行符。 \r 此时在文本中插入回车。 \f 此时在文本中插入换页符。 \' 此时在文本中插入一个单引号字符。 \" 此时在文本中插入双引号字符。 \\ 此时在文本中插入一个反斜杠字符。
您的连接字符串有一个反斜杠,因此 java 需要一个转义序列,而 \R 不是(非法转义字符)。
因此,您必须转义反斜杠,您的连接字符串应如下所示:
"jdbc:sqlserver://JOSEAN\\REGULUS;databasename = BD12272"
【讨论】:
【参考方案2】:试试这个:
"jdbc:sqlserver://JOSEAN;instanceName=REGULUS;databaseName=BD12272"
【讨论】:
以上是关于带有 JSP 的 JDBC 连接字符串 SQL Server 导致“非法转义字符”错误的主要内容,如果未能解决你的问题,请参考以下文章
带有忽略大小写的 JDBC URL 不适用于 H2 数据库连接
带有 Service Pack 2 的 SQL Server Developer Edition 的 jTDS 连接字符串