메이븐

가장 중요한 세부 사항은 MySQL 서버 자체에 대한 JDBC 드라이버 라이브러리입니다. 컴퓨터에 표시되지 않으므로 거기에 추가해야 합니다.

Maven을 사용하는 경우 올바른 라이브러리를 지정하여 Maven을 도와야 합니다.

MySQL JDBC 드라이버 :

   	<dependency>
        	<groupId>mysql</groupId>
        	<artifactId>mysql-connector-java</artifactId>
        	<version>8.0.29</version>
    	</dependency>

이 코드를 pom.xml 에 추가하기만 하면 됩니다 .

또한 몇 가지 더 인기있는 드라이버를 제공합니다.

PostgeSQL 용 JDBC 드라이버 :

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.4.0</version>
</dependency>

Oracle 용 JDBC 드라이버 :

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>21.5.0.0</version>
</dependency>

H2 용 JDBC 드라이버 :

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>2.1.214</version>
</dependency>

첫 번째 데이터베이스 쿼리

필요한 모든 라이브러리가 포함되었으므로 이제 첫 번째 데이터베이스 액세스 프로그램을 실행할 차례입니다. 우리는 main() 메서드 에 모든 코드를 작성할 것입니다 .

1단계 . main() 메서드 앞에 몇 가지 가져오기를 추가하면 삶이 훨씬 쉬워집니다.

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

2단계 . 먼저 데이터베이스 연결을 생성해야 합니다. 이렇게 하려면 main() 메서드에서 다음 코드를 작성합니다.

Connection connection  = DriverManager.getConnection(
           "jdbc:mysql://localhost:3306/test",
           "login", "password");

한 줄로 할 수도 있습니다. 어느 쪽이든 더 편리합니다. 물론 로그인과 비밀번호는 로컬 MySQL 서버에서 실제 비밀번호로 대체해야 합니다.

3단계 . 데이터베이스에 대한 쿼리를 생성합니다. user 테이블에서 모든 사용자를 가져옵니다. 그런 다음 다음 코드 줄을 추가해야 합니다.

Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery("SELECT * FROM user");

두 줄입니다. 처음에는 객체를 생성합니다.성명, 두 번째에서는 이를 사용하여 데이터베이스를 쿼리합니다. executeQuery() 메서드는 데이터베이스 쿼리를 실행하고 다음 유형의 개체를 반환합니다.결과 집합.

4단계 . 객체에 포함된 데이터 표시결과 집합.

결과 집합- 세트가 아니라 그냥 그렇게 불렀습니다. 쿼리 실행 결과를 저장합니다. 이 개체는 반복자와 비슷합니다. 결과의 현재 행을 설정/변경할 수 있으며 이 현재 행에서 데이터를 가져올 수 있습니다. 예제에 다음 코드를 추가합니다.

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번째 열 데이터를 문자열로 반환합니다.

전체 프로그램 목록

오류를 최소화하기 위해 프로그램의 전체 목록은 다음과 같습니다.

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...
열하나 이바노프 이반
2.2 페트로프 니콜라이
3.3 시도로프 비탈리
종료 코드 0으로 프로세스 완료