Czy można połączyć się z SQL Server LocalDB przy użyciu JDBC? It appears that (stan na grudzień 2011) nie było możliwe.Podłączanie do SQL Server LocalDB przy użyciu JDBC
Czy znasz sposób na obejście problemu lub zmianę statusu?
Czy można połączyć się z SQL Server LocalDB przy użyciu JDBC? It appears that (stan na grudzień 2011) nie było możliwe.Podłączanie do SQL Server LocalDB przy użyciu JDBC
Czy znasz sposób na obejście problemu lub zmianę statusu?
Czy można połączyć się z SQL Server LocalDB przy użyciu JDBC?
Nie ze sterownikiem JDBC firmy Microsoft.
Sterownik JDBC jTDS obsługuje nazwane potoki.
Wykonywanie informacji SqlLocalDB.exe MyInstance dostarcza (wraz z innymi informacjami) nazwę potoku instancji, na przykład "np: \. \ Pipe \ LOCALDB # F365A78E \ tsql \ query".
Czy znasz sposób rozwiązania problemu lub zmianę statusu?
Możliwe rozwiązania alternatywne JDBC przy użyciu alternatywnych lub przełączanie na SQL Server 2012 Express zamiast LocalDB.
Szczegóły:
sterownik Microsoft JDBC nie jest kompatybilny z LocalDB.
"Niestety, sterownik JDBC firmy Microsoft nie obsługuje łączenia z LocalDB, ponieważ LocalDB obsługuje tylko połączenia z potokami nazwanymi, a nasza obecna implementacja JDBC nie obsługuje nazwanych potoków Jednym z możliwych zadań dla programistów jest pobranie i zainstalowanie SQL Express, który umożliwia obsługę TCP/IP. "
Luiz Fernando Santos (MSFT) July 06, 2012
„Niestety sterownik JDBC nie obsługuje LocalDB w tej chwili i nie jest łatwo obejść. Zespół jest świadomy tego brakujących funkcji, ale złożenie connect przedmiot jest zawsze pomocny DCR śledzenia i priorytetów . "
Krzysztof Kozielczyk - MSFT 22 Dec 2011
„Używasz SQL Server Express dzisiaj dla rozwoju lokalnego? Czy działa na systemie Windows lub inną platformę? Byłoby wspaniale, aby dowiedzieć się więcej o tym, jak chcesz używać LocalDB z aplikacji Java. "
Dzięki za poświęcenie czasu na opublikowanie. Poprosiłem moje DBA o to pytanie. On z kolei postawił go na forum MSDN i otrzymał odpowiedź od Luiza Fernando Santosa. Ta sama odpowiedź, którą uprzejmie zacytowałeś! :-) –
Wystarczająco fair. Uzupełniłem odpowiedź możliwymi obejściami. –
Tak, jest to możliwe.
Ciąg połączenia dla instancji LocalDB wykorzystaniem jTDS wygląda następująco:
jdbc:jtds:sqlserver://./DatabaseName;instance=LOCALDB#88893A09;namedPipe=true
Działa to jak z jTDS 1.3.2.Możesz pobrać wydanie tutaj:
https://github.com/milesibastos/jTDS/releases/download/v1.3.2/jtds-1.3.2-dist.zip
aby znaleźć nazwie rurę do żądanej LocalDB uruchom
SqlLocalDb info NameOfTheLocalDBInstance
który daje coś takiego np:\\.\pipe\LOCALDB#88893A09\tsql\query
to chyba najlepiej łączyć z konkretną nazwę użytkownika/hasło, aby utworzyć login i użytkownika do bazy danych, w tym przypadku LocalDB jak również (jeśli jeszcze go nie masz):
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
To są świetne instrukcje, jednak musiałem usunąć nazwę bazy danych z ciągu połączenia (ponieważ używamy głównej bazy danych) i zamiast tego używać moich poświadczeń sieciowych: jdbc: jtds: sqlserver: //./; instance = LOCALDB # 111111; namedPipe = true; domain = my_domain –
A jeśli CREATE DATABASE SomeDB po podłączeniu z sqlcmd, a następnie używamy: jDBC jtds: SQLServer: //./SomeDB; instancja = LOCALDB # 111111; namedPipe = true; domain = my_domain –
... wreszcie, JTDS 1.3.2 jar można znaleźć w archiwum ZIP na github: https://github.com/milesibastos/jTDS/releases –
zrobiłem moje badania dzisiaj do konfiguracji połączenia z użyciem jTDS i nazwanych potoków.
Stan na dziś to: niemożliwe! Nie można zbudować połączenia ciąg do localDB przy użyciu jTDS ze względu na ograniczenia nazwy rury. Zobacz otwartego problem tutaj: http://sourceforge.net/p/jtds/bugs/716/
Jak wspomniano localDB nie obsługuje inne połączenia, ale namedPipes, więc wygląda na to misji niemożliwe tej pory ...
rgds
Edit: Jak wspomniano w komentarzu znajduje się łatka, której dotyczy problem, i możesz jej użyć, aby rozwiązać problem. Przepraszam, nie mogę tego sprawdzić samemu.
Zobacz samouczek, jak to zrobić z IDE opartych na Intelli https://blog.jetbrains.com/datagrip/2016/10/07/connecting-datagrip-to-sql-server-express-localdb/ – moscas