- How to Connect MySQL Database in Java Using Eclipse Step by Step
- How to Connect MySQL Database in Java Using Eclipse
- Downloading and Installing Eclipse
- Creating a Database and Table in MySQL
- Creating a Java Project in Eclipse
- Adding MySQL connector jar file in Eclipse
- Connecting Java Program with MySQL Database | JDBC Connection
- Работа с базой данных
- Check mysql connection java
- Возможные проблемы с часовыми поясами и SSL
- Файлы конфигурации
How to Connect MySQL Database in Java Using Eclipse Step by Step
Hello guys, Welcome to another tutorial, and in this tutorial, we will learn how to connect MySQL database in Java using Eclipse with simple and easy steps. Most of the time, whenever we try to connect our program to the database, we face a lot of problems, and even then, we cannot connect successfully. But if you follow this tutorial properly, you will be able to connect your Java program to the MySQL database using Eclipse quite easily.
So Let’s start our tutorial on How to Connect MySQL Database in Java using Eclipse or can say JDBC Connection in Eclipse with MySQL Database.
Watch Video Tutorial
How to Connect MySQL Database in Java Using Eclipse
- 1 How to Connect MySQL Database in Java Using Eclipse
- 1.1 Downloading and Installing Eclipse
- 1.2 Creating a Database and Table in MySQL
- 1.3 Creating a Java Project in Eclipse
- 1.4 Adding MySQL connector jar file in Eclipse
- 1.5 Connecting Java Program with MySQL Database | JDBC Connection
- 1.6 Inserting Data into The MySQL Database using Java
- 1.7 Updating Data in The MySQL Database using Java
- 1.8 How to Retrieve Data from MySQL Database in Java Using Eclipse
- 1.9 Deleting Data from the MySQL Database using Java
- 1.10 Conclusion
Downloading and Installing Eclipse
- The very First thing you need to do is to Download and Install Eclipse IDE on your system.
- Open your favorite browser and go to the official website of Eclipse www.eclipse.org.
- When you enter the official website of the eclipse, you will see a download button in the top right corner. Click on that.
- After clicking on the Download Button, you will be redirected to another Web page. Click on the download button, as shown in the figure below.
- Now again, click on the Download button to download the executable eclipse file.
- After downloading the file, you need to install it in your system in the same way you install any application.
- In the next steps, we will see how to connect Eclipse to MySQL Database in Java.
Creating a Database and Table in MySQL
- To create a database and table, you can either choose MySQL command-line client or MySQL workbench, which is nothing but a GUI version of the MySQL console where we can visually design, model, and generates databases.
- If you don’t know how to install MySQL workbench in your system, then you can follow this guide, How to install MySQL Workbench.
- To get to know how to download and Install MySQL in your system so that you can Use MySQL command-line client, you can follow this guide.
- I will use MySQL command-line client in this tutorial, open MySQL command-line client, and enter your password so that you can connect the MySQL database.
- This is the same password you provided while installing the MySQL database in your system.
- Now create a database named “demodb” and a table named “student” inside it with columns
- ROLLNO
- USERNAME
- DEPT
create table student ( ROLLNO varchar ( 10 ) not null , USERNAME varchar ( 30 ) , DEPT VARCHAR ( 30 ) ) ;
Creating a Java Project in Eclipse
- Open Eclipse IDE and click on the Java Project under the new section of File Menu ( File>>New>>Java Project ).
- Now give a name to your project (DbConnect in this example) and click on “Finish”.
- Now right click on the project and create a new Java class (New>>Class).
- Now give a name to your class(MyDbconnect in this Example), tick mark on the public static void main(String[] args), and then click on the Finish button as shown in the figure below.
Adding MySQL connector jar file in Eclipse
- In order to connect your java program with MySQL database, you need to include MySQL JDBC driver which is a JAR file, namely mysql-connector-java-8.0.28.jar. The version number in the Jar file can be different. So in this step, we will see how to add MySQL connector jar file in Eclipse.
- You can download the latest version of MySQL connector from this link (MySQL Connector Java download) .
- After visiting the link, select platform independent from the drop-down menu as shown in the figure below.
- Then download the Platform Independent (Architecture Independent), ZIP Archive as shown below.
- Extract the zip archive and you will get the jar file.
- Next, you have to include this jar file into your program so that you will be able to connect your java program with MySQL database.
- Right-click on the project, go to the properties section then select Java Build Path and click on the Add External JARs button.
- After clicking on the button a pop-up window will appear where you have to select and open the jar file.
- You can see the added Jar file as shown in the figure below. Now click on the Apply and Close button.
Connecting Java Program with MySQL Database | JDBC Connection
Since you have already finished adding jar file, now you are ready to connect your Java program with MySQL Database. Let’s quickly take a look at the Java code to connect to MySQL database in Eclipse step by step.
- Establish a connection using DriverManager.getConnection(String URL) and it returns a Connection reference.
- In String URL parameter you have to write like this jdbc:mysql://localhost:3306/demodb”, “root”, “root” where,
Работа с базой данных
Для хранения данных, как правило, используются базы данных. В приложениях на Java мы можем использовать различные системы управления базами данных. Но так как, на сегодняшний день одной из наиболее используемых в приложениях на Java является СУБД MySQL, то основные моменты взаимодействия с БД будут рассматриваться преимущественно на примере MySQL.
Один из способов работы с базой данных представляет использование JDBC. JDBC (Java Database Connectivity) представляет специальный API, благодаря которому мы можем абстрагироваться от конкретной СУБД с ее особенностями и использовать единый интерфейс для работы с различными СУБД.
Для работы с базой данных в приложении на Java через JDBC необходим драйвер. Обычно разработчик каждой отдельной СУБД (MySQL, Oracle, PostgreSQL и т.д.) предоставляет специальный драйвер. Более подробно про аспекты работы в приложении Java можно посмотреть в соответствующем руководстве Java и базы данных. В данном же случае мы сосредосточимся непосредственно на работе с бд именно в JavaEE.
Для работы с MySQL необходим драйвер Connector/J , который можно загрузить с официального сайта со страницы https://dev.mysql.com/downloads/connector/j/.
На странице загрузок выберем в поле «Select Operating System» пункт «Platform Independent» и затем загрузим zip-пакет с драйвером.
Распакуем загруженный пакет и найдем файл mysql-connector-java-8.0.12.jar (версия файла может отличаться).
Создадим в Eclipse новый проект по типу Dynamic Web Project и добавим в его папку WebContent/WEB-INF/lib :
Убедимся, что сервер MySQL запущен и сперва проверим, что мы можем подключаться к серверу базы данных. Вначале создадим на сервере MySQL пустую базу данных, которую назовем products и с которой мы будет работать в приложении на Java EE. Для создания базы данных применяется выражение SQL:
CREATE DATABASE productdb;
Эту команду можно выполнить либо из консольного клиента MySQL Command Line Client, либо из графического клиента MySQL Workbench, которые устанавливются вместе с сервером MySQL. Подробнее про создание базы данных можно прочитать в статье Создание и удаление базы данных.
Далее добавим в проект сервлет. Допустим, он будет называться ProductsServlet и будет содержать следующий код:
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/products") public class ProductsServlet extends HttpServlet < protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException < response.setContentType("text/html"); PrintWriter writer = response.getWriter(); try< String url = "jdbc:mysql://localhost/productdb?serverTimezone=Europe/Moscow&useSSL=false"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password))< writer.println("Connection to ProductDB succesfull!"); >> catch(Exception ex) < writer.println("Connection failed. "); writer.println(ex); >finally < writer.close(); >> >
Переменная url хранит строку подключения. В частности, здесь она указывает, что сервер MySQL запущен на локальной машине (localhost), а подключение идет к бд productdb. Переменные username и password указывают соответственно на логин и пароль к серверу MySQL. В каждом конкретном случае эти значения могут отличаться.
Затем идет загрузка драйвера:
Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance();
И далее создается объект Connection для взаимодействия с базой данной:
try (Connection conn = DriverManager.getConnection(url, username, password))
В случае удачного подключения после запуска приложения мы увидим соответствующее сообщение в браузере:
Если же что-то установлено неправильно: строка подключения, логин, пароль, не загужен драйвер или что-то еще, то мы увидим сообщение об ошибке.
Check mysql connection java
Вначале создадим на сервере MySQL пустую базу данных, которую назовем store и с которой мы будет работать в приложении на Java. Для создания базы данных применяется выражение SQL:
Его можно выполнить либо из консольного клиента MySQL Command Line Client, либо из графического клиента MySQL Workbench, которые устанавливются вместе с сервером MySQL. Подробнее про создание базы данных можно прочитать в статье Создание и удаление базы данных.
Для подключения к базе данных необходимо создать объект java.sql.Connection . Для его создаия применяется метод:
Connection DriverManager.getConnection(url, username, password)
Метод DriverManager.getConnection в качестве параметров принимает адрес источника данных, логин и пароль. В качестве логина и пароля передаются логин и пароль от сервера MySQL. Адрес локальной базы данных MySQL указывается в следующем формате: jdbc:mysql://localhost/название_базы данных
Пример создания подключения к созданной выше локальной базе данных store:
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password");
После завершения работы с подключением его следует закрыть с помощью метода close() :
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password"); // работа с базой данных connection.close();
Либо мы можем использовать конструкцию try :
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/store", "root", "password")) < // работа с базой данных >
Возможные проблемы с часовыми поясами и SSL
При подключении к базе данных MySQL мы можем столкнуться с рядом проблем. Например, определим следующий код подключения:
import java.sql.Connection; import java.sql.DriverManager; public class Program < public static void main(String[] args) < try< String url = "jdbc:mysql://localhost/store"; String username = "root"; String password = "password"; Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = DriverManager.getConnection(url, username, password))< System.out.println("Connection to Store DB succesfull!"); >> catch(Exception ex) < System.out.println("Connection failed. "); System.out.println(ex); >> >
Даже если указаны правильно адрес базы данных, логин, пароль, мы все равно можем столкнуться с ошибками:
Из консольного вывода видно, что проблема заключается с SSL и часовым поясом. Чтобы решить данную проблему, необходимо указать в адресе подключения часовой пояс бд и параметры для использования ssl. В частности, я указываю, что SSL не будет использоваться и что часовым поясом будет московский часовой пояс:
String url = "jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false";
Параметры подключения указываются после вопросительного знака после названия базы данных. Параметр serverTimezone указывает на название часового пояса сервера бд. В данном случае "Europe/Moscow", cписок всех допустимых названий часовых поясов можно найти на странице https://gist.github.com/kinjal/9105369. И параметр useSSL=false указывает, что SSL не будет применяться.
Файлы конфигурации
Мы можем определить все данные для подключения непосредственно в программе. Однако что если какие-то данные были изменены? В этом случае потребуется перекомпиляция приложения. Иногда это не всегда удобно, например, отсутствует досуп к исходникам, или перекомпиляция займет довольно продолжительное время. В этом случае мы можем хранить настройки в файле.
Так, создадим в папке программы новый текстовый файл database.properties , в котором определим настройки подключения:
url = jdbc:mysql://localhost/store?serverTimezone=Europe/Moscow&useSSL=false username = root password = password
Загрузим эти настройки в программе:
import java.sql.*; import java.nio.file.*; import java.io.*; import java.util.*; public class Program < public static void main(String[] args) < try< Class.forName("com.mysql.cj.jdbc.Driver").getDeclaredConstructor().newInstance(); try (Connection conn = getConnection())< System.out.println("Connection to Store DB succesfull!"); >> catch(Exception ex) < System.out.println("Connection failed. "); System.out.println(ex); >> public static Connection getConnection() throws SQLException, IOException < Properties props = new Properties(); try(InputStream in = Files.newInputStream(Paths.get("database.properties")))< props.load(in); >String url = props.getProperty("url"); String username = props.getProperty("username"); String password = props.getProperty("password"); return DriverManager.getConnection(url, username, password); > >