Thiết lập phụ thuộc maven cho SQL Server


122

Tôi đang phát triển một portlet nơi tôi có quyền truy cập Hibernate vào cơ sở dữ liệu SQL Server. Tôi đã thiết lập các phụ thuộc maven cho nó và cố gắng tìm ra trình kết nối SQL Server giống như cách tôi biết MySql có nó.

Tuy nhiên, tìm kiếm Google của tôi chỉ cung cấp Mysql nếu tôi tìm kiếm trình kết nối Máy chủ SQL. Giá trị phụ thuộc maven đúng là gì?


Câu trả lời:


213

Tải xuống JAR trình điều khiển từ liên kết do Olaf cung cấp và thêm nó vào kho lưu trữ Maven cục bộ của bạn với;

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

Sau đó thêm nó vào dự án của bạn với;

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

13
Ghi chú phát hành cho phiên bản được liên kết từ câu trả lời của Olaf rằng đó là "Microsoft JDBC Driver 4.0 cho SQL Server". Vì vậy, tôi sẽ sử dụng "-Dversion = 4.0" trong cài đặt mvn.
George Armkeep

2
Tôi gặp phải một vấn đề: "không có POM trong thư mục này" Giải pháp cho vấn đề đó có thể tìm thấy ở đây: stackoverflow.com/questions/16348459/
Alan B. Dee

4
sourceforge jtds là câu trả lời của bạn
Junchen Liu

1
Bạn có thể tải về jar tại đây: java2s.com/Code/Jar/s/Doadsqljdbc420jar.htmlm
İsmail Yavuz

Việc tải xuống và thêm nó vào repo maven cục bộ sẽ không dẫn đến sự kết hợp chặt chẽ với máy phát triển mà bạn đang xây dựng ứng dụng của mình? Ý tôi là nếu cùng một dự án được cố gắng xây dựng trên một máy khác, nó sẽ không tìm thấy bình trong repo cục bộ. Sẽ không tốt nếu thêm nó vào dự án để nó có sẵn trên VCS?
Trả lời Maroust

69

Trả lời cho Microsoft "mới" và "mát mẻ".

Yay, trình điều khiển SQL Server hiện theo giấy phép MIT trên

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

Trả lời cho Microsoft "cũ":

Đối với trường hợp sử dụng của tôi (kiểm tra tích hợp), việc sử dụng phạm vi hệ thống cho sự phụ thuộc của trình điều khiển JDBC là đủ:

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

Bằng cách đó, tôi có thể đưa trình điều khiển JDBC vào kiểm soát phiên bản cục bộ. Không cần phải có mỗi nhà phát triển thiết lập thủ công các công cụ trong kho riêng của họ.

Tôi lấy cảm hứng từ câu trả lời này cho một câu hỏi khác về Stack Overflowtôi cũng đã viết về nó ở đây .


Nếu có thể, tôi nghĩ tốt hơn là tải lên JAR trên kho lưu trữ cục bộ (Nexus)
mcoolive 3/03/2015

@mcoolive: Nó chắc chắn là tốt hơn, chủ yếu. Nhưng đôi khi, thật dễ dàng (và vẫn phù hợp) để thực hiện một công việc nhanh chóng và bẩn thỉu.
Lukas Eder

Câu trả lời này đã lỗi thời so với câu trả lời cập nhật của Touzery.
Phước lành Geek

1
@BlessedGeek: Chà, tôi đã cập nhật câu trả lời của mình ngay cả trước Touzery. Trên thực tế, câu trả lời của Touzery đã lỗi thời hơn, bởi vì nó vẫn giới thiệu một thư viện từ sourceforge. nguồnforge !!
Lukas Eder

1
@MikhailFedorov: Giải pháp của tôi đã làm việc cho tôi. Vui lòng thêm câu trả lời của riêng bạn (hoặc thậm chí một cặp câu hỏi / câu trả lời) cho thấy cách giải quyết vấn đề này, sẽ rất tốt cho cộng đồng.
Lukas Eder

16

Ngoài ra còn có một giải pháp thay thế: bạn có thể sử dụng trình điều khiển jTDS nguồn mở cho MS-SQL Server, tương thích mặc dù không được Microsoft tạo ra. Đối với trình điều khiển đó, có một tạo tác maven mà bạn có thể sử dụng:

http://jtds.sourceforge.net/

Từ http://mvnreposective.com/artifact/net.sourceforge.jtds/jtds :

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

CẬP NHẬT nov 2016, Microsoft hiện đã xuất bản trình điều khiển MBCQL JDBC trên github và nó cũng có sẵn trên maven ngay bây giờ:

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

Đối với Java 1.6: Tôi đoán các phiên bản cao hơn dành cho 1.7 .. <lệ thuộc> <groupId> net.sourceforge.jtds </ groupId> <artifactId> jtds </ artifactId> <version> 1.2.4 </ version> </ version phụ thuộc>
Roshan Khandelwal

2
lưu ý rằng không có bản phát hành nào của JTDS kể từ năm 2013 vì vậy đó có thể là lời khuyên tồi tệ hiện nay ...
Emmanuel Touzery

Trình điều khiển jtds có vấn đề với ssl trong java 8 (đã vá nhưng không được phát hành) nên chúng tôi đã chuyển sang sqljdbc4
rychu

9

Tôi tin rằng bạn đang tìm kiếm trình điều khiển JDBC của Microsoft SQL Server: http://msdn.microsoft.com/en-us/sqlserver/aa937724


Vâng, đây là một trong những. Tôi muốn tải nó qua maven, vì vậy đây không thực sự là câu trả lời cho câu hỏi của tôi. Vì vậy, lần đầu tiên đưa ra sẽ đánh dấu vào câu trả lời của anh ấy / cô ấy!
mico

3
Có vẻ như có một số bất đồng giữa Maven và Microsoft folks về việc cấp phép và phân phối lại trình điều khiển JDBC: blog.msdn.com/b/jdbcteam/archive/2010/03/02/ trên
Olaf

3

Hãy cẩn thận với các câu trả lời ở trên. sqljdbc4.jar không được phân phối theo giấy phép công cộng, đó là lý do tại sao rất khó để đưa nó vào một cái bình để chạy và phân phối. Xem câu trả lời của tôi dưới đây để biết thêm chi tiết và một giải pháp tốt hơn nhiều. Cuộc sống của bạn sẽ trở nên dễ dàng hơn nhiều như tôi đã làm khi tôi tìm thấy câu trả lời này.

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


2

Ngay cả sau khi cài đặt jar sqlserver, maven của tôi đã cố gắng tìm nạp phụ thuộc từ kho lưu trữ maven. Sau đó, tôi đã cung cấp cho pom kho lưu trữ của máy cục bộ của tôi và nó hoạt động tốt sau đó ... có thể giúp ích cho ai đó.

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


1

Có vẻ như Microsoft đã xuất bản một số trình điều khiển của họ cho trung tâm:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.