Как импортировать MySQL с помощью Gradle и подключиться к JavaFX - PullRequest
0 голосов
/ 30 июня 2018

Я использую IntelliJ IDEA и JavaFX 10 для своей практики обучения. Я хочу подключить MySQL и импортировать его, используя Gradle.

Я нашел несколько примеров в интернете, но я не нашел ни одной последней, большинство функций уже устарело, и чтение столь разных примеров приводит меня в замешательство.

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете сначала прочитать официальную документацию , а не читать несколько примеров.

Я предполагаю, что вы новичок.

1.) Первое, что нужно сделать, это загрузить MySQL Installer , чтобы установить Сервер на вашу машину. Помните, что без этого ничего не получится.

Во время установки вам нужно будет установить Server PORT, root password или add a new user, просто запомните Server PORT и root Password и оставьте все по умолчанию.

2.) Перейдите к Maven Central . Нам нужно импортировать MySQL Connector . Чтобы импортировать MySQL Connector в Gradle, нам нужно получить правильную группу, имя и версию для него.

Вы заметили, что в Maven Central есть несколько вариантов того, как вы можете импортировать банку в ваш проект, на этот раз мы хотим импортировать ее с помощью Gradle, поэтому вы должны выбрать Gradle и скопировать код: compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.11'

ПРИМЕЧАНИЕ - Чтобы избежать проблем, просто всегда выбирайте и используйте последнюю версию MySQL Installer и MySQL Connector , на данный момент последнюю версию 8.0.11.

3.) В IntelliJ IDEA , чтобы импортировать в Gradle, в вашем проекте есть build.gradle, щелкните по нему, чтобы открыть, затем вставьте код, который вы скопировали в dependencies.

должно выглядеть так:

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.11'
}

4.) Создайте класс, к которому вы хотите подключиться к MySQL, приведенный ниже код является моим примером. Main.Class

import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Main {

    public static void main(String[] args){

        Connection conn = null;
        String user = "whatEverUserNameYouSetup";
        String password = "whatEverPasswordYouSetup";
        String database = "whatEverTheNameOfYourDatabase";
        int port = 3306; //default port, change it depending on your setup
        try {
            Class.forName("com.mysql.cj.jdbc.Driver").getConstructor().newInstance();
            conn = DriverManager.getConnection("jdbc:mysql://localhost:" + port + "/" + database, user, password);

            // Do something with the Connection

        } catch (SQLException ex) {
            // handle any errors
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}

ПРИМЕЧАНИЕ: документация принадлежит вашему другу.

ОБНОВЛЕНИЕ: Если вы запустили ошибку что-то вроде

Wed Dec 09 22:46:52 CET 2015 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

тогда вам нужно установить useSSL на false, код будет выглядеть так:

import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class Main {

    public static void main(String[] args){

        Connection conn = null;
        Properties properties = new Properties(); //I use Properties to make things easer. 
        properties.setProperty("user", "root");
        properties.setProperty("password", "YourPassword");
        properties.setProperty("useSSL", "false"); //Set useSSL to false to solve the problem.

        try {
            Class.forName("com.mysql.cj.jdbc.Driver").getConstructor().newInstance();
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306", properties);

            // Do something with the Connection

        } catch (SQLException ex) {
            // handle any errors
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
        }catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...