是否可以使用JDBC连接到SQL Server LocalDB? It appears that(截至2011年12月)这是不可能的。
您是否知道变通方法或状态发生变化?
答案 0 :(得分:24)
是的,这是可能的。
使用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
答案 1 :(得分:19)
是否可以使用JDBC连接到SQL Server LocalDB?
不使用Microsoft的JDBC驱动程序。
jTDS JDBC驱动程序支持命名管道。
执行SqlLocalDB.exe信息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支持。“
Luiz Fernando Santos (MSFT) July 06, 2012
“不幸的是,JDBC驱动程序此时并不支持LocalDB,并且没有简单的解决方法。团队知道这个缺失的功能,但是提交连接项对于DCR跟踪和优先级排序总是有用的。”
Krzysztof Kozielczyk - MSFT 22 Dec 2011
“你今天使用SQL Server Express进行本地开发吗?你在Windows或其他平台上工作吗?很高兴听到你想如何在你的Java应用程序中使用LocalDB。”
答案 2 :(得分:0)
我今天做了我的研究,使用jTDS和命名管道建立连接。
今天的状态是:不可能! 由于管道名称的限制,无法使用jTDS构建连接字符串到localDB。请参阅此处的未解决问题:http://sourceforge.net/p/jtds/bugs/716/
正如前面提到的,localDB不支持其他连接而是namedPipes,所以到目前为止它看起来像 mission impossible ...
RGDS
修改强> 正如在评论中提到的,上面链接的问题有补丁,您可以使用它来解决问题。对不起,我不能自己检查一下。
答案 3 :(得分:0)
要了解LocalDb和实例: