使用JDBC连接到SQL Server的LocalDB使用JDBC连接到SQL Server的Loc

2019-06-14 15:47发布

是否有可能连接到SQL Server的LocalDB使用JDBC? 看来, (如2011年12月的),这是不可能的。

你知道一种解决方法或状态改变?

Answer 1:

是否有可能连接到SQL Server的LocalDB使用JDBC?

不与微软的JDBC驱动程序。

该JTDS JDBC驱动程序支持命名管道。

执行SqlLocalDB.exe信息MYINSTANCE将让你(以及其他信息)实例管道名称,如“NP:\ \管道\的LocalDB#F365A78E \ TSQL \查询”。

你知道一种解决方法或状态改变?

可能的解决方法是使用替代JDBC驱动程序或切换到SQL Server 2012的快 ,而不是的LocalDB。

细节:

微软的JDBC驱动程序是不兼容的LocalDB。

“不幸的是,微软的JDBC驱动程序不支持连接到的LocalDB。这是因为的LocalDB仅支持命名管道的连接和我们当前的JDBC实现不支持命名管道,一个可能的解决办法为你的开发人员正在下载和安装的SQL Express,这并启用了TCP / IP的支持“。

路易斯·费尔南多·桑托斯(MSFT)2012年7月6日

“不幸的是JDBC驱动程序不此时支持的LocalDB并没有简单的解决办法,球队已经意识到了这个缺失的功能,但在提交连接产品总是DCR跟踪和优先级有帮助的。”

克日什托夫·Kozielczyk - MSFT 22 2011年12月

“你使用SQL Server Express今天为当地的发展吗?你在Windows或其他平台上工作?这将是伟大听到更多有关如何你想使用的LocalDB您的Java应用程序。”

Shamitha雷迪,项目经理微软JDBC驱动程序的SQL Server,微软JDBC驱动程序产品团队2012年4月13日



Answer 2:

对的,这是可能的。

使用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


Answer 3:

今天我做了我的研究使用JTDS和命名管道安装连接。

在今天的状态是: 不可能! 没有能透过JTDS连接字符串的LocalDB由于其管道名称限制。 看到这里开的问题: http://sourceforge.net/p/jtds/bugs/716/

如前所述的LocalDB不支持其他的连接,但了NamedPipes,所以看起来不可能完成的任务至今...

RGDS

编辑:正如在评论中提及有补丁的问题上面链接,你可以用它来解决这个问题。 对不起,我不能检查这个自己。



Answer 4:

要知道的LocalDB实例和:

  1. 在对象资源管理器上的LocalDB右击
  2. 选择属性
  3. 点击查看连接属性
  4. 您将获得有关本地和网络服务器的详细信息的所有信息


文章来源: Connecting to SQL Server LocalDB using JDBC