JavaとMySQLでテーブルから単一の結果(1件のレコード)のみを取得する方法
JavaからMySQLデータベースに接続し、テーブル内の多数のレコードの中から先頭の1件だけを取得したいケースはよくあります。そのような場合は、SQLのLIMIT句を使用するのが最も簡単で効率的な方法です。この記事では、テーブルの作成からJava側のコード実装まで、手順を追って解説します。
1. サンプルテーブルの作成
まず、動作確認用のテーブルを作成しましょう。
mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (1.37 sec)
2. テストデータの挿入
INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。
mysql> insert into DemoTable values(101,'Chris'); Query OK, 1 row affected (0.54 sec) mysql> insert into DemoTable values(102,'David'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(103,'Mike'); Query OK, 1 row affected (0.12 sec)
3. テーブル内の全レコードを確認
SELECT文を実行して、テーブルに登録されたすべてのレコードを表示してみます。
mysql> select * from DemoTable;
実行結果は以下の通りです。3件のレコードが登録されていることがわかります。
+------+-------+ | Id | Name | +------+-------+ | 101 | Chris | | 102 | David | | 103 | Mike | +------+-------+ 3 rows in set (0.00 sec)
4. Javaから1件だけ取得するサンプルコード
それでは、JavaからMySQLへ接続してレコードを取得するコードを見てみましょう。ポイントは、クエリにlimit 1を付けることで、テーブルの先頭にある1件のレコードのみをフェッチできる点です。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import com.mysql.jdbc.ResultSetMetaData;
public class OneResultDemo {
public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
Statement st = null;
ResultSet rs = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?useSSL=false", "root", "123456");
String query = "select *from DemoTable " + " limit 1";
st = con.createStatement();
rs = st.executeQuery(query);
while (rs.next()) {
System.out.println("Id=" + rs.getInt("Id"));
System.out.println("Name=" + rs.getString("Name"));
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
コードのポイント
DriverManager.getConnection()でJDBC経由によりMySQLデータベース「web」に接続しています。- クエリ文字列の末尾に
limit 1を指定することで、結果セットに含まれるレコードを最大1件に制限しています。 rs.next()で結果セットを走査し、getInt()やgetString()で各カラムの値を取り出しています。
5. 実行結果
上記プログラムを実行すると、以下のようにテーブルの先頭レコードのみが出力されます。
Id=101 Name=Chris
このように、LIMIT句を活用すれば、大量のデータが存在するテーブルからでも必要な1件だけを効率よく取得できます。特定の条件に合う1件を取得したい場合は、WHERE句と組み合わせてselect * from DemoTable where 条件 limit 1のように記述することも可能です。
-
JavaでMySQLテーブルに1つのカラムのみを挿入する方法
JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m
-
JavaとMySQLでテーブルから単一の結果(1件のレコード)のみを取得する方法
JavaからMySQLデータベースに接続し、テーブル内の多数のレコードの中から先頭の1件だけを取得したいケースはよくあります。そのような場合は、SQLのLIMIT句を使用するのが最も簡単で効率的な方法です。この記事では、テーブルの作成からJava側のコード実装まで、手順を追って解説します。 1. サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable -> ( -> Id int, &