MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JavaでMySQLテーブルのデータをリスト(ArrayList)として取得する方法

JavaでMySQLテーブルからデータを取得してリスト形式に格納したい場合、ArrayListの概念を活用するのが効果的です。特に、ArrayList<ArrayList<データ型>>のように入れ子構造のArrayListを使うことで、テーブルの各行を内側のリスト、テーブル全体を外側のリストとして管理できます。

基本的な構文

ArrayList<ArrayList<yourDataType>> anyVariableName = new ArrayList<ArrayList<yourDataType>>();

サンプルテーブルの作成

まず、MySQLでデモ用のテーブルを作成します。

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コードの例

続いて、MySQLテーブルのデータを入れ子のArrayListに格納するJavaコードを見ていきましょう。JDBCを使ってデータベースに接続し、ResultSetから1行ずつ値を取り出してリストに追加していきます。

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("The name are as follows:");
         for (int i = 0; i < outer.size(); i++) {
            System.out.println(outer.get(i));
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

コードのポイント

  • データベース接続DriverManager.getConnection()でJDBC経由でMySQLに接続します。
  • クエリ実行executeQuery()でSELECT文を実行し、結果をResultSetとして受け取ります。
  • リストへの格納while (resultSet.next())ループ内で、各行ごとに新しいinnerリストを作成し、nameカラムの値を追加します。
  • 結果の出力:外側のリストouterをループ処理して、全件を表示します。

実行結果

上記のコードを実行すると、以下のような出力が得られます。

The name are as follows:
[John]
[Bob]
[David]

このように、MySQLテーブルから取得した各レコードが、個別のArrayListとして外側のリストに格納されていることが確認できます。この手法は、テーブルの複数カラムを扱う場合にも応用でき、取得したデータを柔軟に加工・処理する際に非常に便利です。

  1. JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法

    MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI

  2. JavaのPreparedStatementを使ってMySQLテーブルを更新する方法

    JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。1. テーブルの作成まず、MySQLで更新用のテーブルを作成しましょう。mysql> create table DemoTable( Id int, FirstName varchar(40) ); Query OK, 0 rows a