Мейвън
Най-важният детайл е самата библиотека JDBC Driver за MySQL сървър. Просто няма да се покаже на вашия компютър, така че трябва да го добавите там.
Ако използвате Maven, тогава трябва да му помогнете, като посочите правилната библиотека.
MySQL JDBC драйвер :
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
Просто добавете този code към вашия pom.xml .
Ще дам и няколко по-популярни драйвера.
JDBC драйвер за PostgeSQL :
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.4.0</version>
</dependency>
JDBC драйвер за Oracle :
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.5.0.0</version>
</dependency>
JDBC драйвер за H2 :
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.1.214</version>
</dependency>
Първо запитване към база данни
Всички необходими библиотеки са включени, сега е време да стартирате първата си програма за достъп до база данни. Ще напишем целия code в метода main() .
Етап 1 . Добавете няколко импортирания преди метода main() - това ще направи живота ви много по-лесен:
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
Етап 2 . Първо трябва да създадем връзка с база данни. За да направите това, в метода main() напишете следния code:
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test",
"login", "password");
Можете и на един ред - Howто ви е по-удобно. Вход и парола, разбира се, трябва да замените истинските от вашия локален MySQL сървър.
Етап 3 . Създаваме заявка към базата данни. Нека вземем всички потребители от потребителската table. След това ще трябва да добавите този ред code:
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");
Това са два реда. В първия създаваме обектИзявление, а във втория го използваме за заявка към базата данни. Методът executeQuery() изпълнява заявка към база данни и връща обект от типнабор от резултати.
Етап 4 . Показване на данните, съдържащи се в обектанабор от резултати.
набор от резултати- не е комплект, просто така се казва. Той съхранява резултата от изпълнението на заявката. Този обект е донякъде подобен на итератор: той ви позволява да зададете/промените текущия ред на резултата и след това можете да получите данни от този текущия ред. Добавете следния code към вашия пример:
while (results.next()) {
Integer id = results.getInt(1);
String name = results.getString(2);
System.out.println(results.getRow() + ". " + id + "\t"+ name);
}
Методът next() променя текущия ред с резултати на следващия. Връща true, ако има такъв ред, и false, ако няма повече редове.
След това от текущия ред на обектанабор от резултатиможете да получите данни от неговите колони:
- getRow() - връща номера на текущия ред в обектанабор от резултати
- getInt(N) - ще върне данните от N-тата колона на текущия ред като int
- getString(N) - ще върне данните от N-тата колона на текущия ред като String
Пълен списък с програми
За да минимизирате грешките, ето пълен списък на програмата:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcApplicatin {
public static void main(String[] args) throws Exception{
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test",
"root", "secret");
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");
while (results.next()) {
Integer id = results.getInt(1);
String name = results.getString(2);
System.out.println(results.getRow() + ". " + id + "\t"+ name);
}
connection.close();
}
}
И моят екранен изход след стартиране на програмата:
"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe... | |||
единадесет | Ivanов Ivan | ||
2.2 | Peterов Николай | ||
3.3 | Сидоров Виталий | ||
Процесът завърши с изходен code 0 |
GO TO FULL VERSION