Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

Java에서 MySQL 테이블 데이터를 ArrayList 목록으로 가져오는 방법

네, 가능합니다. Java의 ArrayList 개념을 활용하면 MySQL 테이블의 데이터를 목록 형태로 손쉽게 가져올 수 있습니다.

기본 문법

리스트 안에 리스트를 담는 중첩 구조를 사용하려면 다음과 같은 문법을 사용합니다.

ArrayList<ArrayList<데이터타입>> 변수명 = new ArrayList<ArrayList<데이터타입>>();

예제 테이블 준비하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table demo10
-> (
-> id int not null auto_increment primary key,
-> name varchar(20)
-> );
Query OK, 0 rows affected (2.19 sec)

다음으로 insert 명령어를 사용해 테이블에 샘플 데이터를 삽입합니다.

mysql> insert into demo10(name) values('John');
Query OK, 1 row affected (0.23 sec)

mysql> insert into demo10(name) values('Bob');
Query OK, 1 row affected (0.12 sec)

mysql> insert into demo10(name) values('David');
Query OK, 1 row affected (0.13 sec)

select 문을 사용하여 테이블에 저장된 레코드를 확인합니다.

mysql> select *from demo10;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+-------+
| id | name  |
+----+-------+
| 1  | John  |
| 2  | Bob   |
| 3  | David |
+----+-------+
3 rows in set (0.00 sec)

Java 코드 예제

이제 JDBC를 통해 MySQL 데이터베이스에 연결하고, 조회한 결과를 ArrayList에 저장하는 전체 Java 코드입니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import com.mysql.jdbc.Statement;
public class ListInListDemo {
    public static void main(String[] args) {
        Connection con = null;
        Statement statement = null;
        try {
            ArrayList<ArrayList<String>> outer = new ArrayList<ArrayList<String>>();
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledatabase", "root", "123456");
            statement = (Statement) con.createStatement();
            String sql;
            sql = "select *from demo10";
            ResultSet resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                ArrayList<String> inner = new ArrayList<String>();
                inner.add(resultSet.getString("name"));
                outer.add(inner);
            }
            System.out.println("조회된 이름 목록은 다음과 같습니다:");
            for (int i = 0; i < outer.size(); i++) {
                System.out.println(outer.get(i));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

코드 설명

위 코드의 핵심 로직은 다음과 같습니다.

  • 외부 리스트(outer): 각 행(row)의 데이터를 담는 내부 리스트들을 저장하는 상위 ArrayList입니다.
  • 내부 리스트(inner): ResultSet에서 한 행씩 읽어올 때마다 새로 생성되며, 해당 행의 name 컬럼 값을 저장합니다.
  • while 반복문: resultSet.next()를 통해 모든 행을 순회하면서 각 행의 값을 inner 리스트에 추가하고, 이를 outer 리스트에 누적합니다.

실행 결과

프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

조회된 이름 목록은 다음과 같습니다:
[John]
[Bob]
[David]

이처럼 Java의 중첩 ArrayList 구조를 활용하면 MySQL 테이블의 조회 결과를 유연하게 관리할 수 있습니다. 실무에서는 JPA나 MyBatis 같은 ORM 프레임워크를 사용하는 경우가 많지만, JDBC의 기본 동작 원리를 이해하는 것은 여전히 매우 중요합니다.