我正在开发一个portlet,我对Hibernate访问SQL Server数据库。我为它设置了 maven依赖,并尝试以我知道MySql所拥有的方式找到SQL Server连接器。
如果我搜索SQL Server连接器,我的Google搜索仍然只提供Mysql。什么是正确的 maven依赖值?
答案 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 question和I've also blogged about it here获取灵感。
答案 2 :(得分:16)
还有另一种选择:您可以将开源jTDS驱动程序用于MS-SQL Server,虽然不是由Microsoft提供的,但它是兼容的。 对于该驱动程序,您可以使用maven工件:
来自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中。请参阅下面的答案,了解更多详情和更好的解决方案。一旦我找到了这个答案,你的生活将变得更加容易。
答案 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);
}