SQL सर्वर के लिए मावेन निर्भरता की स्थापना


122

मैं एक पोर्टलेट विकसित कर रहा हूं जहां मुझे SQL सर्वर डेटाबेस में हाइबरनेट एक्सेस है। मैं इसके लिए मावेन निर्भरता स्थापित करता हूं और उसी तरह से SQL सर्वर कनेक्टर को खोजने की कोशिश करता हूं जिस तरह से मुझे पता है कि MySql के पास है।

यदि मैं SQL सर्वर कनेक्टर की खोज करता हूं, तब भी मेरी Google-खोज केवल मैसकल देती है। सही मावेन निर्भरता मूल्य क्या है ?


जवाबों:


213

ओलाफ द्वारा दिए गए लिंक से ड्राइवर जार डाउनलोड करें और इसे अपने स्थानीय मावेन भंडार के साथ जोड़ें;

mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar

फिर इसे अपने प्रोजेक्ट में जोड़ें;

<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>sqljdbc4</artifactId>
  <version>4.0</version>
</dependency>

13
ओलाफ के उत्तर की स्थिति से जुड़े संस्करण के लिए रिलीज़ नोट यह बताता है कि यह "Microsoft JDBC ड्राइवर 4.0 SQL सर्वर के लिए" है। इसलिए मैं mvan स्थापित में "-Dversion = 4.0" का उपयोग करूंगा।
जॉर्ज आर्महोल्ड

2
मैं एक मुद्दे में भाग गया: "इस निर्देशिका में कोई पोम नहीं" इसका समाधान यहां पाया जा सकता है: stackoverflow.com/questions/16348459/…
एलन बी डी

4
sourceforge jtds आपका जवाब है
Junchen लियू

1
आप यहाँ जार डाउनलोड कर सकते हैं: java2s.com/Code/Jar/s/Downloadsqljdbc420jar.htm
Yavuz

स्थानीय मावेन रेपो में इसे डाउनलोड करने और जोड़ने से क्या आप अपने ऐप का निर्माण कर रहे विकास मशीन के साथ एक तंग युग्मन पैदा नहीं कर पाएंगे? मेरा मतलब है कि अगर एक ही परियोजना को एक अलग मशीन पर बनाने की कोशिश की जाती है, तो यह स्थानीय रेपो में जार नहीं मिलेगा। क्या इसे परियोजना में जोड़ना अच्छा नहीं होगा, ताकि वीसीएस पर उपलब्ध हो?
Obro Maroof

69

"नया" और "शांत" Microsoft के लिए उत्तर दें।

याय, SQL सर्वर ड्राइवर अब MIT लाइसेंस के तहत

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>

"पुराने" Microsoft के लिए उत्तर दें:

मेरे उपयोग-मामले (एकीकरण परीक्षण) के लिए यह JDBC ड्राइवर की निर्भरता के लिए सिस्टम स्कोप का उपयोग करने के लिए पर्याप्त था:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
    <optional>true</optional>
</dependency>

इस तरह, मैं JDBC ड्राइवर को स्थानीय संस्करण नियंत्रण में रख सकता हूं। प्रत्येक डेवलपर को मैन्युअल रूप से अपनी रिपॉजिटरी में सामान सेट करने की आवश्यकता नहीं है।

मैंने इस उत्तर से एक और स्टैक ओवरफ्लो प्रश्न के लिए प्रेरणा ली और मैंने यहां इसके बारे में ब्लॉग भी किया है


यदि यह संभव है, तो मुझे लगता है कि स्थानीय
मावेन

@mcoolive: यह निश्चित रूप से बेहतर है, ज्यादातर। लेकिन कभी-कभी, एक त्वरित और गंदे काम करना आसान (और अभी भी उपयुक्त) है।
लुकास ईडर

यह उत्तर टाउज़री के अद्यतन उत्तर की तुलना में पुराना है।
धन्य गीक

1
@BlessedGeek: खैर, मैंने टॉउज़री से पहले ही अपना जवाब अपडेट कर दिया। वास्तव में, टाउज़री का उत्तर अधिक पुराना है, क्योंकि यह अभी भी सोर्सफोर्ज से एक पुस्तकालय का उल्लेख करता है। सोर्सफोर्ज !!
लुकास एडर

1
@ मिखाइलफेडोरोव: मेरे समाधान ने मेरे लिए काम किया। अपने स्वयं के उत्तर (या यहां तक ​​कि एक प्रश्न / उत्तर जोड़ी) को जोड़ने के लिए स्वतंत्र महसूस करें जो दिखाता है कि इसे कैसे हल किया जाए, समुदाय के लिए बहुत अच्छा होगा।
लुकास ईडर

16

एक विकल्प भी है: आप MS-SQL सर्वर के लिए ओपन-सोर्स jTDS ड्राइवर का उपयोग कर सकते हैं, जो संगत है, हालांकि Microsoft द्वारा नहीं बनाया गया है। उस ड्राइवर के लिए, एक मावेन कलाकृति है जिसका आप उपयोग कर सकते हैं:

http://jtds.sourceforge.net/

से http://mvnrepository.com/artifact/net.sourceforge.jtds/jtds :

<dependency>
    <groupId>net.sourceforge.jtds</groupId>
    <artifactId>jtds</artifactId>
    <version>1.3.1</version>
</dependency>

UPDATE nov 2016, Microsoft ने अब अपने MSSQL JDBC ड्राइवर को github पर प्रकाशित किया और यह अब maven पर भी उपलब्ध है:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>

Java 1.6 के लिए: मैं अनुमान लगा रहा हूं कि उच्च संस्करण 1.7 के लिए हैं .. <निर्भरता> <GroupId> net.sourceforge.jtds </ groupId> <विरूपण साक्ष्य> jtds </ विरूपण साक्ष्य> <संस्करण> 1.2.4 </ संस्करण> </ निर्भरता>
रोशन खंडेलवाल

2
ध्यान दें कि 2013 के बाद से JTDS की कोई रिलीज़ नहीं हुई थी, ताकि आजकल बुरी सलाह दी जा सके ...
इमैनुएल टाउज़री

Jtds ड्राइवर को java 8 में ssl के साथ समस्या थी (पैच किए गए लेकिन जारी नहीं किए गए) इसलिए हमने sqljdbc4 पर स्विच किया
rychu

9

मेरा मानना ​​है कि आप Microsoft SQL सर्वर JDBC ड्राइवर की तलाश कर रहे हैं: http://msdn.microsoft.com/en-us/sqlserver/aa937724


हाँ, यह एक है। मैं इसे मावेन के माध्यम से लोड करना चाहूंगा, इसलिए यह वास्तव में मेरे सवाल का जवाब नहीं था। तो, पहले देने वाले को उसके जवाब के लिए मेरी टिक मिल जाएगी!
o

3
ऐसा लगता है कि JDBC ड्राइवर के लाइसेंसिंग और पुनर्वितरण के बारे में मावेन और माइक्रोसॉफ्ट के लोगों के बीच कुछ मतभेद हैं: blogs.msdn.com/b/jdbcteam/archive/2010/03/02/…
ओलाफ

3

उपरोक्त उत्तरों से सावधान रहें। sqljdbc4.jar को एक सार्वजनिक लाइसेंस के तहत वितरित नहीं किया जाता है, यही वजह है कि रनटाइम और वितरण के लिए इसे जार में शामिल करना मुश्किल है। अधिक विवरण और अधिक बेहतर समाधान के लिए मेरा जवाब नीचे देखें। मेरा यह उत्तर मिलते ही आपका जीवन बहुत आसान हो जाएगा।

https://stackoverflow.com/a/30111956/3368958


2

Sqlserver जार स्थापित करने के बाद भी, मेरा मावेन मावेन भंडार से निर्भरता लाने की कोशिश कर रहा था। मैंने तब, अपने पोम को अपने स्थानीय मशीन का भंडार प्रदान किया और यह उसके बाद ठीक काम करता है ... किसी के लिए मदद का हो सकता है।

    <repository>
        <id>local</id>
        <name>local</name>
        <url>file://C:/Users/mywindows/.m2/repository</url>
    </repository>


1

ऐसा लगता है कि Microsoft ने अपने कुछ ड्राइवरों को केंद्रीय रूप से प्रकाशित करने के लिए प्रकाशित किया है:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.