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として外側のリストに格納されていることが確認できます。この手法は、テーブルの複数カラムを扱う場合にも応用でき、取得したデータを柔軟に加工・処理する際に非常に便利です。
-
JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI
-
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