找不到适合 jdbc:amazonaws 的驱动程序
Posted
技术标签:
【中文标题】找不到适合 jdbc:amazonaws 的驱动程序【英文标题】:No suitable driver found for jdbc:amazonaws 【发布时间】:2018-03-15 21:41:45 【问题描述】:我正在尝试使用 JDBC 连接到 amazon athena。由于我在 maven 上没有找到 AthenaDriver 存储库,因此我在 github 上自己创建了它。基本上我在做的是这样的:
pom.xml:
<repository>
<id>mvn-rep</id>
<name>maven repository</name>
<url>https://github.com/raphael-psr/maven-repository/raw/master/</url>
</repository>
<dependency>
<groupId>com.amazonaws.athena.jdbc</groupId>
<artifactId>AthenaJDBC41</artifactId>
<version>1.1.0</version>
</dependency>
java:
class.forName("com.amazonaws.athena.jdbc.AthenaDriver");
Properties properties = new Properties();
properties.setProperty("user", user);
properties.setProperty("password", password);
properties.setProperty("aws_credentials_provider_class", "amazon.AmazonCredentialsProvider");
Connection connection = DriverManager.getConnection("jdbc:awsathena://athena." + region + ".amazonaws.com:443", properties);
引发异常:
java.sql.SQLException: 找不到适合 jdbc:amazonaws://athena.us-east-1.amazonaws.com:443 的驱动程序
有人知道它是什么吗?
【问题讨论】:
【参考方案1】:也许您想从以下位置下载 JDBC 驱动程序:https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar
您可以将其安装在您自己的 maven 存储库中:
mvn install:install-file -Dfile=/home/users/User01/Documents/AthenaJDBC41-1.1.0.jar -DgroupId=com.amazonaws.athena.jdbc -DartifactId=athenaJDBC -Dpackaging=jar
然后你可以在你的 pom.xml 中引用它:
让我知道这是否对您有所帮助。
PS:不知道为什么代码格式化在我的电脑上不起作用。我已经尝试了三种不同的浏览器,但我预计会出现同样的问题。
【讨论】:
列表中的代码格式需要和缩进 8,而不是 4(4 使块成为列表的段落,另外 4 使其成为代码)。 这正是我在创建repository 时所做的,而class.forName("com.amazonaws.athena.jdbc.AthenaDriver")
没有返回任何异常。【参考方案2】:
从https://s3.amazonaws.com/athena-downloads/drivers/AthenaJDBC41-1.1.0.jar下载Jar
将 jar 添加到您自己的 maven 存储库中
mvn install:install-file -Dfile=/home/sumit/Downloads/AthenaJDBC41-1.1.0.jar -DgroupId=com.amazonaws.athena.jdbc -DartifactId=athenaJDBC -Dversion=1.1.0 -Dpackaging=jar
将 -Dfile 值更改为您下载的 jar 路径。 如果需要更新-Dversion。
为你的 pom.xml 添加依赖
<dependency>
<groupId>com.amazonaws.athena.jdbc</groupId>
<artifactId>athenaJDBC</artifactId>
<version>1.1.0</version>
</dependency>
【讨论】:
【参考方案3】:我自己在 Clojure 中开发 Spark 作业时使用 JDBC42
版本的驱动程序的 2.0.2
遇到了这个问题。尽管存在这些差异,但我认为答案会翻译出来,我是从Spark Unable to find JDBC Driver 得到的。
我相信您需要将 Properties
对象中的 driver
属性设置为 Athena Driver 类,即
properties.setProperty("driver", "com.simba.athena.jdbc.Driver");
这对于2.0.2
版本是正确的。在你的情况下应该是
properties.setProperty("driver", "com.amazonaws.athena.jdbc.AthenaDriver");
我不知道为什么 Class.forName
还不够。我还必须构建自己的 Maven 包以包含在内。
【讨论】:
以上是关于找不到适合 jdbc:amazonaws 的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
如何修复:找不到适合 jdbc:sqlserver 的驱动程序 [重复]
找不到适合'jdbc:mysql:// localhost:3306 / mysql的驱动程序[重复]
SQLException: 找不到适合 jdbc:postgresql 的驱动程序
使用 DataSource (Java Eclipse) 时“找不到适合 jdbc 的驱动程序”