Подходящий драйвер не найден снежинка JDBC - PullRequest
1 голос
/ 30 сентября 2019

Я сейчас работаю над приложением. Мы переходим от наших файловых систем к нашей базе данных 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)

1 Ответ

1 голос
/ 01 октября 2019

Исследование, на которое я бы посоветовал взглянуть: https://docs.snowflake.net/manuals/user-guide/jdbc-configure.html

Этот ответ также выглядел полезным: https://stackoverflow.com/a/54504514/12127815 "добавление jar в classpath, а затем выполнение следующей команды, Class.forName («предоставленное имя драйвера») в вызывающем классе? «Хотя легкая фляга была предложена, чтобы быть усовершенствованием:« [open] Легкая фляга драйвера? # 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 используется в этом примере только для иллюстрации. Последняя доступная версия драйвера может быть выше. "

Другие могут иметь лучшее понимание.

...