带有 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 导致“非法转义字符”错误的主要内容,如果未能解决你的问题,请参考以下文章

在jsp编程中如何连接数据库

JSP 中的 JDBC 连接

JSP Connect Database

JDBC -JSP

带有忽略大小写的 JDBC URL 不适用于 H2 数据库连接

带有 Service Pack 2 的 SQL Server Developer Edition 的 jTDS 连接字符串