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

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コードの実装例のスクリーンショットです。

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

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

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

まとめ

MySQLのテーブルから最後のレコードを取得するには、「SELECT * FROM テーブル名 ORDER BY Id DESC LIMIT 1」というクエリをJavaのexecuteQuery()メソッドで実行するのがシンプルかつ確実な方法です。AUTO_INCREMENTの主キーを持つテーブルであれば、この手法をそのまま応用できます。ぜひ実際の開発でも活用してみてください。

  1. Javaを使ってMySQLテーブルにレコードを挿入する方法

    はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable(   Id int,   Name varchar(30),&

  2. JavaでMySQLテーブルのカラム数を取得・カウントする方法

    MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable     -> (     -> St