JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法
MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。
1. MySQLデータベースにテーブルを作成する
まず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。
mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> FirstName varchar(10), -> LastName varchar(10) -> ); Query OK, 0 rows affected (0.80 sec)
2. テーブルにレコードを挿入する
次に、INSERT文を使ってテーブルにレコードを追加します。
mysql> insert into javaGetDataDemo(FirstName,LastName) values('John','Smith');
Query OK, 1 row affected (0.19 sec)
mysql> insert into javaGetDataDemo(FirstName,LastName) values('Carol','Taylor');
Query OK, 1 row affected (0.12 sec)3. 登録されたレコードを確認する
SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from javaGetDataDemo;
実行結果は以下の通りです。
+----+-----------+----------+ | Id | FirstName | LastName | +----+-----------+----------+ | 1 | John | Smith | | 2 | Carol | Taylor | +----+-----------+----------+ 2 rows in set (0.00 sec)
4. Javaプログラムで最後のレコードを取得する
最後のレコードを取得するポイントは、ORDER BY DESC句とLIMIT 1を組み合わせたクエリを使うことです。Idの降順(DESC)で並べ替え、先頭の1件だけを取得すれば、それが自動採番されたIDの中で最も新しいレコード、つまり最後に挿入されたデータになります。
以下が実際のJavaコードです。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class GetDataFromMySQLToJava {
public static void main(String[] args) {
String JdbcURL = "jdbc:mysql://localhost:3306/sample?useSSL=false";
String Username = "root";
String password = "123456";
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
System.out.println("Connecting to database..............." + JdbcURL);
con = DriverManager.getConnection(JdbcURL, Username, password);
Statement st = con.createStatement();
String query = ("SELECT * FROM javaGetDataDemo ORDER BY Id DESC LIMIT 1;");
rs = st.executeQuery(query);
if (rs.next()) {
String fname = rs.getString("FirstName");
String lname = rs.getString("LastName");
System.out.println("FirstName:" + fname);
System.out.println("LastName:" + lname);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}コードのポイント
- JDBC URLの指定:「jdbc:mysql://localhost:3306/sample?useSSL=false」で、ローカル環境のsampleデータベースに接続します。
- DriverManager.getConnection():URL・ユーザー名・パスワードを渡してデータベースへの接続を確立します。
- createStatement()とexecuteQuery():Statementオブジェクトを生成し、SQLクエリを実行してResultSetとして結果を受け取ります。
- rs.next():ResultSetのカーソルを次の行に進め、データが存在するかどうかを判定します。
以下はJavaコードの実装例のスクリーンショットです。

そして、テーブルの最後のレコードが出力された結果のスクリーンショットがこちらです。

まとめ
MySQLのテーブルから最後のレコードを取得するには、「SELECT * FROM テーブル名 ORDER BY Id DESC LIMIT 1」というクエリをJavaのexecuteQuery()メソッドで実行するのがシンプルかつ確実な方法です。AUTO_INCREMENTの主キーを持つテーブルであれば、この手法をそのまま応用できます。ぜひ実際の開発でも活用してみてください。
-
Javaを使ってMySQLテーブルにレコードを挿入する方法
はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable( Id int, Name varchar(30),&
-
JavaでMySQLテーブルのカラム数を取得・カウントする方法
MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable -> ( -> St