为SQL Server设置maven依赖项

mic*_*ico 122 sql-server hibernate maven

我正在开发一个portlet,我对Hibernate访问SQL Server数据库.我为它设置了maven依赖项,并尝试以我知道MySql所拥有的相同方式查找SQL Server连接器.

如果我搜索SQL Server连接器,我的Google搜索仍然只提供Mysql.什么是正确的maven依赖值?

Stu*_*u.C 212

从Olaf提供的链接下载驱动程序JAR,并将其添加到您当地的Maven存储库中;

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>
Run Code Online (Sandbox Code Playgroud)

  • 从Olaf的回答中链接的版本的发行说明指出它是"用于SQL Server的Microsoft JDBC Driver 4.0".所以我会在mvn install中使用"-Dversion = 4.0". (13认同)
  • sourceforge jtds是你的答案 (4认同)
  • 我遇到了一个问题:"此目录中没有POM"可以在此处找到解决方案:http://stackoverflow.com/questions/16348459/maven-3-0-5-command-error-the-goal-您指定的-要求-A-项目到执行 (2认同)

Luk*_*der 68

回答"新"和"酷"的微软.

是的,SQL Server驱动程序现在在MIT许可下

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

回答"老"微软:

对于我的用例(集成测试),使用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>
Run Code Online (Sandbox Code Playgroud)

这样,我可以将JDBC驱动程序放入本地版本控制中.无需让每个开发人员在自己的存储库中手动设置内容.

我从这个答案中获得了另一个Stack Overflow问题的灵感,我也在这里写了博客.


Emm*_*ery 16

还有另一种选择:您可以将开源jTDS驱动程序用于MS-SQL Server,虽然不是由Microsoft提供的,但它是兼容的.对于该驱动程序,您可以使用maven工件:

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>
Run Code Online (Sandbox Code Playgroud)

2016年11月更新,微软现在在github上发布了它的MSSQL JDBC驱动程序,它现在也可以在maven上使用:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,自2013年以来没有JTDS的发布,所以现在可能是不好的建议...... (2认同)

Ola*_*laf 9

我相信您正在寻找Microsoft SQL Server JDBC驱动程序:http://msdn.microsoft.com/en-us/sqlserver/aa937724

  • 看起来Maven和Microsoft人员之间在JDBC驱动程序的许可和重新分发方面存在一些分歧:http://blogs.msdn.com/b/jdbcteam/archive/2010/03/02/microsoft-sql-server-jdbc- 3-0-CTP释放,announcement.aspx (3认同)