Как отправить SQL запрос на Java, запрос SELECT, получение данных для автотеста?

Ссылка скопирована
1 ответ

Ошибка

Execution failed for task ':compileTestJava'. > Could not resolve all files for configuration ':testCompileClasspath'.    > Could not find mysql:mysql-connector-java:8.3.0.      Searched in the following locations:        - https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.3.0/mysql-connector-java-8.3.0.pom

Execution failed for task ':compileTestJava'. > Could not resolve all files for configuration ':testCompileClasspath'. > Could not find mysql:mysql-connector-java:8.3.0. Searched in the following locations: - https://repo.maven.apache.org/maven2/mysql/mysql-connector-java/8.3.0/mysql-connector-java-8.3.0.pom

Ошибка после понижения версии mysql connector

No matching tests found in any candidate test task.     Requested tests:         Test pattern tests.DataSourseTest in task :test  * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.4/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 5s 4 actionable tasks: 1 executed, 3 up-to-date

No matching tests found in any candidate test task. Requested tests: Test pattern tests.DataSourseTest in task :test * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.4/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 5s 4 actionable tasks: 1 executed, 3 up-to-date

package tests; import org.junit.Test;  import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;  import javax.xml.parsers.ParserConfigurationException; import java.sql.*; import java.io.IOException;    import static java.sql.DriverManager.getConnection;  public class DataSourse {      @Test      public void mysqlDataSource() throws ParserConfigurationException, IOException, ClassNotFoundException, SQLException {           try {             String url = "jbdc:mysql://10.63.2.143:4306/";             String username = "***";             String password = "***";             Connection conn = DriverManager.getConnection(url, username, password);             Class.forName("com.mysql.jdbc.Driver");             System.out.println("yra");               try {                 Statement statement = conn.createStatement();                 PreparedStatement stmt;                 ResultSet rs = statement.executeQuery("select to_account_id * from task * where task_type_id = 1 * order by date_create * LIMIT = 1");                 System.out.println("to_account_id");               } finally {                 conn.close();             }          } catch (SQLException e) {             throw new RuntimeException(e);         }     } }

package tests; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.xml.parsers.ParserConfigurationException; import java.sql.*; import java.io.IOException; import static java.sql.DriverManager.getConnection; public class DataSourse { @Test public void mysqlDataSource() throws ParserConfigurationException, IOException, ClassNotFoundException, SQLException { try { String url = "jbdc:mysql://10.63.2.143:4306/"; String username = "***"; String password = "***"; Connection conn = DriverManager.getConnection(url, username, password); Class.forName("com.mysql.jdbc.Driver"); System.out.println("yra"); try { Statement statement = conn.createStatement(); PreparedStatement stmt; ResultSet rs = statement.executeQuery("select to_account_id * from task * where task_type_id = 1 * order by date_create * LIMIT = 1"); System.out.println("to_account_id"); } finally { conn.close(); } } catch (SQLException e) { throw new RuntimeException(e); } } }

plugins {     id 'java'     id "io.qameta.allure" version "2.11.2" }  group = 'org.example' version = '1.0-SNAPSHOT'  repositories {     mavenCentral() }  dependencies {     testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'     testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'     testImplementation 'io.cucumber:cucumber-java:7.1.0'     testImplementation 'com.codeborne:selenide:7.2.0'     testImplementation 'io.cucumber:cucumber-junit:7.1.0'     testImplementation 'io.qameta.allure:allure-selenide:2.25.0'     testImplementation 'io.qameta.allure:allure-junit5:2.25.0'     testImplementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'  }  test {     useJUnitPlatform() }

plugins { id 'java' id "io.qameta.allure" version "2.11.2" } group = 'org.example' version = '1.0-SNAPSHOT' repositories { mavenCentral() } dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0' testImplementation 'io.cucumber:cucumber-java:7.1.0' testImplementation 'com.codeborne:selenide:7.2.0' testImplementation 'io.cucumber:cucumber-junit:7.1.0' testImplementation 'io.qameta.allure:allure-selenide:2.25.0' testImplementation 'io.qameta.allure:allure-junit5:2.25.0' testImplementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33' } test { useJUnitPlatform() }

Дополнительно:

Попробуйте использовать какую-то orm

  • Так вроде все правильно, в чем проблема?
  • я конечно уже подзабыл sql
    но вот звездочки тут это точно по синтаксису?
    select to_account_id * from task * where task_type_id = 1 * order by date_create * LIMIT = 1
    я бы скорее что-то такое написал
    select to_account_id,date_create from task where task_type_id = 1 order by date_create LIMIT = 1
  • Алексей Черемисин, проблема я так понимаю с mysql connector
    попробовала версию понизить, вышла ошибка
    No matching tests found in any candidate test task.
    Requested tests:
    Test pattern tests.DataSourseTest in task :test

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    > Get more help at https://help.gradle.org.
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
    For more on this, please refer to https://docs.gradle.org/8.4/userguide/command_line... in the Gradle documentation.
    BUILD FAILED in 5s
    4 actionable tasks: 1 executed, 3 up-to-date

    До понижения
    Execution failed for task ':compileTestJava'.
    > Could not resolve all files for configuration ':testCompileClasspath'.
    > Could not find mysql:mysql-connector-java:8.3.0.
    Searched in the following locations:
    - https://repo.maven.apache.org/maven2/mysql/mysql-c...

  • Daria_D15, у Вас похоже библиотека драйвера мускулиного не в classpaph для тестов.
  • Алексей Черемисин, с этим проблема, я его вроде добавила и к classpaph в проект и в библиотеку, может на Mac как то не так установила
  • Daria_D15, Попробуйте мускул указать в градле, как testRuntimeOnly

    Ну и на всякий случай, на почитать - https://docs.gradle.org/current/userguide/declarin...

    PS. Ну и зависимости глянуть

    gradle -q dependencies --configuration testRuntimeClasspath

    gradle -q dependencies --configuration testRuntimeClasspath

    Ну и еще почитать :) https://docs.gradle.org/current/userguide/viewing_...

  • Драйвер для MySQL у вас объявлен при сборке, а при запуске программы, при выполнении строки
    Connection conn = DriverManager.getConnection(url, username, password);

    Connection conn = DriverManager.getConnection(url, username, password);

    драйвер MySQL (его jar) не находится системой исполнения Java. Надо обеспечить его наличие. Далее ничем не могу помочь, Gradle не пользуюсь.
    Скорее всего, понижение версии тут не при чём. Какую вызовете, та и будет работать. И если что не так, она уже сама сообщит, какая ошибка в вашем SQL запросе и соответствует ли ему структура БД.
    Насчёт БД - не знаю как с MySQL, а с другими СУБД (MS SQL, Postgres) требуется указать в url ещё и имя БД на указанном через IP:port хосте.

  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Стас DB Ответ

    Для отправки SQL запроса на Java, выполнения запроса SELECT и получения данных для автотеста, вам потребуется использовать JDBC (Java Database Connectivity). Ниже приведен пример кода, который показывает, как это можно сделать:

    ```java
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class SqlQueryExample {
    public static void main(String[] args) {
    String url = "jdbc:mysql://localhost:3306/databaseName";
    String username = "username";
    String password = "password";

    try {
    Connection connection = DriverManager.getConnection(url, username, password);
    Statement statement = connection.createStatement();

    String sqlQuery = "SELECT * FROM tableName";
    ResultSet resultSet = statement.executeQuery(sqlQuery);

    while (resultSet.next()) {
    int id = resultSet.getInt("id");
    String name = resultSet.getString("name");
    // Добавьте код для обработки данных здесь
    }

    resultSet.close();
    statement.close();
    connection.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
    ```

    В этом примере мы устанавливаем соединение с базой данных MySQL, создаем объект Statement, отправляем запрос SELECT и обрабатываем полученные данные. Замените значения переменных url, username, password, sqlQuery, tableName и поля id, name на соответствующие в вашей базе данных.

    Не забудьте добавить JDBC драйвер в ваш проект. В случае с MySQL это может быть mysql-connector-java.jar, который нужно скачать и добавить в зависимости проекта.

    Таким образом, вы можете отправлять SQL запросы на Java, выполнять запросы SELECT и получать данные для автотестов. Не забудьте обработать исключения, которые могут возникнуть при работе с базой данных.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно