web-dev-qa-db-fra.com

Configuration de la dépendance maven pour SQL Server

Je développe un portlet sur lequel j'ai un accès Hibernate à la base de données SQL Server. J'ai mis en place dépendances maven pour cela et j'essaie de trouver le connecteur SQL Server de la même manière que je sais que MySql l'a.

Ma recherche Google ne donne toujours que Mysql si je recherche un connecteur SQL Server. Quel est le droit dépendance maven valeur?

121
mico

Téléchargez le fichier JAR du pilote à partir du lien fourni par Olaf et ajoutez-le à votre référentiel Maven local avec;

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

Ajoutez-le ensuite à votre projet avec;

<dependency>
  <groupId>com.Microsoft.sqlserver</groupId>
  <artifactId>sqljdbc4</artifactId>
  <version>4.0</version>
</dependency>
210
Stu.C

Répondez pour le "nouveau" et le "cool" Microsoft.

Oui, le pilote SQL Server est maintenant sous la licence MIT sur

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

Réponse pour le "vieux" Microsoft:

Pour mon cas d'utilisation (test d'intégration), il suffisait d'utiliser une portée système pour la dépendance du pilote JDBC en tant que telle:

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

De cette façon, je pourrais placer le pilote JDBC dans le contrôle de version local. Il n'est pas nécessaire que chaque développeur configure manuellement les éléments dans ses propres référentiels.

Je me suis inspiré de cette réponse à une autre question de Stack Overflow et j'ai aussi blogué à ce sujet ici .

68
Lukas Eder

Il existe également une alternative: vous pouvez utiliser le pilote Open Source jTDS pour MS-SQL Server, qui est compatible bien que non fourni par Microsoft. Pour ce pilote, il existe un artefact maven que vous pouvez utiliser:

http://jtds.sourceforge.net/

De 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 publie maintenant son pilote MSSQL JDBC sur github et est également disponible sur maven maintenant:

<dependency>
    <groupId>com.Microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
16
Emmanuel Touzery

Je pense que vous recherchez le pilote JDBC de Microsoft SQL Server: http://msdn.Microsoft.com/en-us/sqlserver/aa937724

9
Olaf

Soyez prudent avec les réponses ci-dessus. sqljdbc4.jar n'est pas distribué avec une licence publique, raison pour laquelle il est difficile de l'inclure dans un fichier jar pour l'exécution et la distribution. Voir ma réponse ci-dessous pour plus de détails et une bien meilleure solution. Votre vie deviendra beaucoup plus facile que la mienne une fois que j'ai trouvé cette réponse.

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

3
<dependency>
  <groupId>com.hynnet</groupId>
  <artifactId>sqljdbc4-chs</artifactId>
  <version>4.0.2206.100</version>
</dependency>

Cela a fonctionné pour moi (si vous utilisez maven)

https://search.maven.org/artifact/com.hynnet/sqljdbc4-chs/4.0.2206.100/jar

2
Carrot

Même après avoir installé le fichier .jar du serveur sqlserver, mon navigateur essayait d'extraire la dépendance à partir du référentiel maven. Ensuite, j'ai fourni à mon pom le référentiel de ma machine locale et tout fonctionnait bien par la suite… pourrait être utile pour quelqu'un.

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

Il semble que Microsoft ait publié certains de leurs pilotes sur maven central:

<dependency>
    <groupId>com.Microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
1
andrew-g-za