2012-07-05 15 views
19

का उपयोग कर SQL सर्वर LocalDB से कनेक्ट करना JDBC का उपयोग कर SQL सर्वर LocalDB से कनेक्ट करना संभव है? It appears that (दिसंबर 2011 तक) यह संभव नहीं था।जेडीबीसी

क्या आप किसी कामकाज या स्थिति में बदलाव के बारे में जानते हैं?

+0

इंटेलिज-आधारित आईडीई से इसे कैसे करें ट्यूटोरियल पर एक नज़र डालें https://blog.jetbrains.com/datagrip/2016/10/07/connecting-datagrip-to-sql-server-express-localdb/ – moscas

उत्तर

14

क्या जेडीबीसी का उपयोग कर SQL सर्वर LocalDB से कनेक्ट करना संभव है?

माइक्रोसॉफ्ट के जेडीबीसी चालक के साथ नहीं।

jTDS जेडीबीसी ड्राइवर नामित पाइप का समर्थन करता है।

SqlLocalDB.exe जानकारी निष्पादित करना MyInstance आपको "np: \। \ Pipe \ LOCALDB # F365A78E \ tsql \ query" जैसे उदाहरण पाइप नाम प्राप्त करेगा।

क्या आप किसी कामकाज या स्थिति में बदलाव के बारे में जानते हैं?

संभावित कामकाज वैकल्पिक जेडीबीसी ड्राइवरों का उपयोग कर रहे हैं या स्थानीय डीबी के बजाय SQL Server 2012 Express पर स्विच कर रहे हैं।

विवरण:

माइक्रोसॉफ्ट JDBC ड्राइवर LocalDB साथ संगत नहीं है।

"दुर्भाग्य से, माइक्रोसॉफ्ट जेडीबीसी चालक स्थानीय डीबी से कनेक्ट करने का समर्थन नहीं करता है। ऐसा इसलिए होता है क्योंकि स्थानीय डीबी केवल नामित पाइप्स कनेक्शन का समर्थन करता है और हमारे वर्तमान जेडीबीसी कार्यान्वयन नामित पाइप्स का समर्थन नहीं करता है। आपके डेवलपर्स के लिए एक संभावित काम डाउनलोड करना और इंस्टॉल करना है एसक्यूएल एक्सप्रेस, जो इसके टीसीपी/आईपी समर्थन को सक्षम और सक्षम करता है। "

Luiz Fernando Santos (MSFT) July 06, 2012

"दुर्भाग्य से JDBC ड्राइवर इस पल में LocalDB का समर्थन नहीं करता और कोई आसान समाधान नहीं है। टीम इस लापता सुविधा के बारे में पता है, लेकिन एक कनेक्ट आइटम दाखिल हमेशा DCR पर नज़र रखने और प्राथमिकता के लिए उपयोगी है । "

Krzysztof Kozielczyk - MSFT 22 Dec 2011

"आप स्थानीय विकास के लिए SQL सर्वर एक्सप्रेस आज का उपयोग करें? आप Windows या किसी अन्य मंच पर काम कर रहे हैं? यह आपको अपने जावा अनुप्रयोग के साथ LocalDB का उपयोग कैसे करना चाहते हैं के बारे में अधिक सुनने के लिए बहुत अच्छा होगा। "

Shamitha Reddy, Program Manager Microsoft JDBC Driver for SQL Server, Microsoft JDBC Driver Product Team 13 Apr 2012

+1

पोस्ट करने के लिए समय लेने के लिए धन्यवाद। मैंने अपने डीबीए से यह सवाल पूछा था। उन्होंने बदले में इसे एमएसडीएन मंच पर देखा और लुइज़ फर्नांडो सैंटोस से जवाब प्राप्त किया। वही जवाब है कि आपने कृपया उद्धृत किया है! :-) –

+0

पर्याप्त मेला। मैंने संभावित कामकाज के साथ जवाब का पूरक किया। –

17

हाँ, यह संभव है।

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

यह शायद सबसे अच्छा कनेक्ट करने के लिए है कुछ दे देंगे एक विशिष्ट उपयोगकर्ता नाम/पासवर्ड के साथ, इसलिए उस स्थानीय डीबी इंस्टेंस में अपने डेटाबेस के लिए लॉगिन और उपयोगकर्ता बनाएं (यदि आपने पहले से नहीं किया है):

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 
+0

ये महान निर्देश हैं, हालांकि मुझे कनेक्शन स्ट्रिंग से डेटाबेस नाम ड्रॉप करना पड़ा था (क्योंकि हम मास्टर डेटाबेस का उपयोग कर रहे हैं) और इसके बजाय मेरे नेटवर्क क्रेडेंशियल का उपयोग करें: jdbc: jtds: sqlserver: //./; instance = LOCALDB # 111111; namePipe = true; डोमेन = MY_DOMAIN –

+3

और यदि हम sqlcmd से कनेक्ट करने के बाद डेटाबेस कुछ डीडीबी बनाते हैं, तो हम इसका उपयोग करते हैं: jdbc: jtds: sqlserver: //./SomeDB; instance = LOCALDB # 111111; namePipe = true; domain = MY_DOMAIN –

+2

... आखिरकार, जीटीडीएस 1.3.2 जार जिथब पर डिस्ट ज़िप में पाया जा सकता है: https://github.com/milesibastos/jTDS/releases –

0

मैंने आज जेटीडीएस और नामित पाइप का उपयोग करके कनेक्शन स्थापित करने के लिए अपना शोध किया।

आज का राज्य है: असंभव! अपनी पाइप नाम सीमाओं के कारण jTDS का उपयोग करके स्थानीय डीबी को कनेक्ट स्ट्रिंग बनाना संभव नहीं है। यहां खुला मुद्दा देखें: http://sourceforge.net/p/jtds/bugs/716/

उल्लेख localDB के रूप में नहीं, अन्य कनेक्शन लेकिन namedPipes का समर्थन करता है, तो यह असंभव मिशन अब तक की तरह दिखता है ...

rgds

संपादित करें: जैसा कि बताया जा टिप्पणी में ऊपर दिए गए मुद्दे में पैच है और आप समस्या को ठीक करने के लिए इसका उपयोग कर सकते हैं। क्षमा करें मैं इसे अपने लिए नहीं देख सकता।

+0

मुझे अभी बोन के जवाब के साथ सफलता मिली है। इसलिए कनेक्शन प्राप्त करना कम से कम संभव है। –

+1

आपके द्वारा लिंक की गई बग में एक पैच संलग्न है जो सीमा को ठीक से ठीक करता है। – twm

+1

मैंने अभी पैच की कोशिश की और यह मेरे लिए काम किया। – twm

संबंधित मुद्दे