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 ドライバーを使用するか、LocalDB の代わりにSQL Server 2012 Expressに切り替えることです。
詳細:
Microsoft JDBC ドライバーは、LocalDB と互換性がありません。
「残念ながら、Microsoft JDBC ドライバーは LocalDB への接続をサポートしていません。これは、LocalDB が名前付きパイプ接続のみをサポートし、現在の JDBC 実装が名前付きパイプをサポートしていないために発生します。開発者にとって考えられる回避策の 1 つは、SQL Express をダウンロードしてインストールすることです。 TCP/IP サポートを有効にします。」
ルイス・フェルナンド・サントス (MSFT) 2012 年 7 月 6 日
「残念ながら、現時点では JDBC ドライバーは LocalDB をサポートしておらず、簡単な回避策はありません。チームはこの欠落している機能を認識していますが、接続項目を提出することは、DCR の追跡と優先順位付けに常に役立ちます。」
Krzysztof Kozielczyk - MSFT 2011 年 12 月 22 日
「現在、ローカル開発に SQL Server Express を使用していますか? Windows または他のプラットフォームで作業していますか? Java アプリで LocalDB をどのように使用したいかについて、詳しくお聞かせいただければ幸いです。」
LocalDb とインスタンスを知るには: