java - 没有找到合适的驱动程序雪花 JDBC

标签 java jdbc snowflake-cloud-data-platform

我目前正在开发一个应用程序。我们正在从文件系统转移到 Snowflake 数据库。我似乎无法连接到数据库 - 我不断遇到“找不到合适的驱动程序”错误。

正确的驱动程序已加载并安装到构建路径中。 有人知道发生了什么事吗?

代码:

package com.GriefUI.DBComponents;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class Snowflake_Driver {

public static void databaseConnection(HttpServletRequest request, HttpServletResponse response) throws UnsupportedOperationException{


    try {

        Connection connObject = getConnection();
        Statement stmt = connObject.createStatement();
        ResultSet rSet = stmt.executeQuery("SELECT * FROM MY_TABLE");


    }catch(Exception e) {
        e.printStackTrace();
        throw new UnsupportedOperationException();
    }

}


 private static Connection getConnection()
          throws SQLException {
        try {
          Class.forName("net.snowflake.client.jdbc.SnowflakeDriver");
        } catch (ClassNotFoundException ex) {
          System.err.println("Driver not found");
        }

        Properties properties = new Properties();

        String user = "user";
        String pwsd = "password";
        String connectStr = "jdbc:snowflake://My_Environment.snowflakecomputing.com";

        Connection conn = DriverManager.getConnection(connectStr, user, pwsd);
        return conn;
      }

 }

构建路径:

Build path

以及相关的堆栈跟踪:

Driver not found
java.sql.SQLException: No suitable driver found for jdbc:snowflake://My_Environment.snowflakecomputing.com
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.GriefUI.DBComponents.Snowflake_Driver.getConnection(Snowflake_Driver.java:54)
at com.GriefUI.DBComponents.Snowflake_Driver.databaseConnection(Snowflake_Driver.java:20)
at com.GriefUI.Servers.PushServer.doPost(PushServer.java:60)
at com.GriefUI.Servers.PushServer.doGet(PushServer.java:47)

最佳答案

我建议查看的研究是:https://docs.snowflake.net/manuals/user-guide/jdbc-configure.html

这个答案看起来也很有帮助:https://stackoverflow.com/a/54504514/12127815 “将 jar 添加到类路径,然后在调用类中运行以下命令 Class.forName("provided driver name")?" 尽管这里要求使用 Light jar 进行增强:“[open]Light driver jar?#174”https://github.com/snowflakedb/snowflake-jdbc/issues/174

将驱动程序集成到项目中:https://docs.snowflake.net/manuals/user-guide/jdbc-download.html#integrating-the-driver-into-a-project 从文档中复制的具体信息:“要将驱动程序集成到项目中,请将必要的标签添加到您的 pom.xml 文件中。例如:

<groupId>net.snowflake</groupId>
<artifactId>snowflake-jdbc</artifactId>
<version>3.9.2</version>

其中标记指定您要集成的驱动程序的版本。请注意,本示例中使用的版本 3.9.2 仅用于说明目的。最新可用的驱动程序版本可能会更高。”

其他人可能有更好的见解。

关于java - 没有找到合适的驱动程序雪花 JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172649/

相关文章:

java - 为什么我们在从 java 包中导入类时使用 *?

java - 使用 LIMIT AND OFFSET 时,H2 嵌入式数据库不会返回正确的结果

java - 检查数据库中的用户是否被禁止 JDBC

session-variables - 有没有办法使用 Snowflake-SQL 重置 Snowflake session 中的所有 SQL 变量?

r - 如何更改雪花 SQL 的 dplyr show_query() 引用约定

javascript - (Oracle) 将 us7ascii 转换为 Snowflake?

Java 无法在自行创建的 private void 中工作,但在执行按钮操作时却可以

java - 使用groovy代码执行Java类

java - Java中将对象转换为其子类

java - org.h2.jdbc.JdbcSQLException : Table "PACCHETTIVISITETURISTICHE" not found; SQL statement: