[英]Connecting to SQL Server LocalDB using JDBC
对的,这是可能的。
使用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信息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)2012年7月6日
“不幸的是,JDBC驱动程序目前不支持LocalDB,并且没有简单的解决方法。该团队意识到这一缺失的功能,但是提交连接项对于DCR跟踪和优先级排序总是很有帮助。”
Krzysztof Kozielczyk-MSFT 2011年12月22日
“您今天使用SQL Server Express进行本地开发吗?您正在Windows或其他平台上工作吗?很高兴听到更多关于您希望如何在Java应用程序中使用LocalDB的信息。”
Shamitha Reddy,用于SQL Server的Microsoft JDBC驱动程序,程序管理器,Microsoft JDBC驱动程序产品团队2012年4月13日
我今天做了研究,以使用jTDS和命名管道建立连接。
今天的状态是: 不可能! 由于jTDS的管道名称受限制,因此无法使用jTDS构建连接字符串到localDB。 请参阅此处的未解决问题: http : //sourceforge.net/p/jtds/bugs/716/
如前所述,localDB不支持其他连接,而是命名为Pipes,因此到目前为止似乎无法完成任务 ...
rgds
编辑:如评论中所述,上面有链接的补丁程序,您可以使用它来解决问题。 抱歉,我无法自己检查。
要知道LocalDb和实例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.