Вы можете сначала прочитать официальную документацию , а не читать несколько примеров.
Я предполагаю, что вы новичок.
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();
}
}
}