Как добавить соединитель JDBC MySQL в мою сборку Gradle? - PullRequest
0 голосов
/ 08 февраля 2019

У меня проблемы с получением .jar из сборки Gradle для использования коннектора JDBC MySQL для подключения к удаленной базе данных.Я получаю ClassNotFoundException, что заставляет меня поверить, что .jar не находится в classpath.Я новичок в Gradle, поэтому я пытаюсь изменить стандартный build.gradle, созданный в новом проекте Eclipse.

Java-объект:

package com.blu.generator;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class MySQLConnection {

    private Connection _conn;

    // init
    MySQLConnection(String url, String user, String pass) throws SQLException, ClassNotFoundException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        this._conn = DriverManager.getConnection(url, user, pass);
        System.out.println("Database connection established.");
    }

    public void getDrugsClaims() throws SQLException {
        String query = "select * from drugs";
        Statement st = this._conn.createStatement();
        ResultSet rs = st.executeQuery(query);
        ResultSetMetaData rsmd = rs.getMetaData();

        int columnsNumber = rsmd.getColumnCount();
        while (rs.next()) {
            //Print one row          
            for(int i = 1 ; i <= columnsNumber; i++){
                  System.out.print(rs.getString(i) + " ");
            }
            System.out.println();        
        }
        return;

    }

}

build.gradle:

apply plugin: 'java-library'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

configurations {
    driver
}

dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:23.0'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'

    // this is for mysql java connector
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.15'
    runtime "mysql:mysql-connector-java:8.0.15"
}

jar {
    manifest {
        attributes(
                'Main-Class': 'com.blu.generator.Main'
        )
    }
}

1 Ответ

0 голосов
/ 08 февраля 2019

Я считаю, что ваш импорт работает нормально, однако вы неправильно его называете с Class.forName.Вместо Class.forName("com.mysql.cj.jdbc.Driver"); должно быть Class.forName("com.mysql.jdbc.Driver");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...