是否可以使用 JDBC 连接到 SQL Server LocalDB? 看来(截至 2011 年 12 月)这是不可能的。
您知道解决方法或状态更改吗?
是否可以使用 JDBC 连接到 SQL Server LocalDB? 看来(截至 2011 年 12 月)这是不可能的。
您知道解决方法或状态更改吗?
是的,有可能。
使用 jTDS 的 LocalDB 实例的连接字符串如下所示:
jdbc:jtds:sqlserver://./DatabaseName;instance=LOCALDB#88893A09;namedPipe=true
这适用于 jTDS 1.3.2。你可以在这里下载一个版本:
https://github.com/milesibastos/jTDS/releases/download/v1.3.2/jtds-1.3.2-dist.zip
要查找所需 LocalDB 的命名管道,请运行
SqlLocalDb info NameOfTheLocalDBInstance
这会给你类似的东西np:\\.\pipe\LOCALDB#88893A09\tsql\query
最好使用特定的用户名/密码进行连接,因此还要在该 LocalDB 实例中为您的数据库创建一个登录名和用户(如果您还没有):
sqlcmd -S np:\\.\pipe\LOCALDB#88893A09\tsql\query
CREATE LOGIN dbuser WITH PASSWORD = 'dbpassword'
GO
CREATE USER dbuser
GO
ALTER AUTHORIZATION ON DATABASE::DatabaseName TO dbuser
GO
是否可以使用 JDBC 连接到 SQL Server LocalDB?
不使用 Microsoft 的 JDBC 驱动程序。
jTDS JDBC驱动程序支持命名管道。
执行 SqlLocalDB.exe info MyInstance 将为您(连同其他信息)获取实例管道名称,例如“np:\.\pipe\LOCALDB#F365A78E\tsql\query”。
您知道解决方法或状态更改吗?
可能的解决方法是使用替代 JDBC 驱动程序或切换到SQL Server 2012 Express而不是 LocalDB。
细节:
Microsoft JDBC 驱动程序与 LocalDB 不兼容。
“不幸的是,Microsoft JDBC 驱动程序不支持连接到 LocalDB。发生这种情况是因为 LocalDB 仅支持命名管道连接,而我们当前的 JDBC 实现不支持命名管道。开发人员可能的解决方法是下载并安装 SQL Express,它并启用其 TCP/IP 支持。”
路易斯·费尔南多·桑托斯 (MSFT) 2012 年 7 月 6 日
“不幸的是,JDBC 驱动程序目前不支持 LocalDB,并且没有简单的解决方法。团队意识到这个缺失的功能,但提交连接项总是有助于 DCR 跟踪和优先级排序。”
Krzysztof Kozielczyk - MSFT 2011 年 12 月 22 日
“您现在使用 SQL Server Express 进行本地开发吗?您是在 Windows 还是其他平台上工作?很高兴听到更多关于您希望如何在 Java 应用程序中使用 LocalDB 的信息。”
Shamitha Reddy,Microsoft JDBC Driver for SQL Server 项目经理,Microsoft JDBC Driver 产品团队 2012 年 4 月 13 日
我今天做了研究,使用 jTDS 和命名管道设置连接。
今天的状态是:不可能! 由于管道名称的限制,无法使用 jTDS 构建到 localDB 的连接字符串。在此处查看未解决的问题:http: //sourceforge.net/p/jtds/bugs/716/
如前所述,localDB 不支持其他连接,但命名管道,所以到目前为止它看起来像是不可能完成的任务......
rgds
编辑: 正如评论中提到的,上面链接的问题中有补丁,您可以使用它来解决问题。对不起,我不能自己检查。
要了解 LocalDb 和实例: