为SQL Server设置maven依赖项

时间:2011-08-04 13:35:05

标签: sql-server hibernate maven

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

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

8 个答案:

答案 0 :(得分:210)

从Olaf和add it to your local Maven repository提供的链接下载驱动程序JAR;

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>

答案 1 :(得分:68)

回答“新”和“酷”微软。

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

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

回答“老”微软:

对于我的用例(集成测试),将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驱动程序放入本地版本控制中。无需让每个开发人员在自己的存储库中手动设置内容。

我从this answer to another Stack Overflow questionI've also blogged about it here获取灵感。

答案 2 :(得分: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>

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

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

答案 3 :(得分:9)

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

答案 4 :(得分:3)

小心上面的答案。 sqljdbc4.jar不是在公共许可证下分发的,这就是为什么很难将它包含在运行时和分发的jar中。请参阅下面的答案,了解更多详情和更好的解决方案。一旦我找到了这个答案,你的生活将变得更加容易。

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

答案 5 :(得分:2)

即使安装了sqlserver jar,我的maven也试图从maven存储库中获取依赖性。然后,我把我的pom作为我本地机器的存储库,之后工作正常...可能对某人有帮助。

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

答案 6 :(得分:2)

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

这对我有用(如果您使用maven)

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

答案 7 :(得分:1)

看起来微软已经向maven central发布了一些驱动程序:

public function report(\Exception $e)
{
    if ($e instanceof \Exception) {
        $top = $e->getMessage().' on line '.$e->getLine();
        $body = $e->getTraceAsString();

        Mail::queue('emails.general', compact('top','body'), function($message) {
            $message->from('abc@abc.com','abc');
            $message->to('abc@gmail.com','abc')
                ->subject('An error on Abc');
        });

    }

    parent::report($e);
}