0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第4回] Javaでクリニック向け予約・問診アプリを一から作ってみる 〜管理者画面で予約情報を確認する〜

Posted at

✅はじめに

こんにちは!
Javaで予約・問診アプリを一から作るシリーズ、第4回目です。
今回は、管理者用の画面で予約一覧を表示する機能を作っていきます。
(前回までの内容は、患者さんが予約を入れるところまで作りました!)

予約データが正しくデータベースに保存されているか確認できるように、一覧表示の画面を作成していきます💪

🎨管理者画面のUI設計

まずは管理者用の画面を簡単に作ります。
SwingのJTableを使って、予約データを表形式で表示できるようにしてみました。すごくシンプルなつくりなので、あくまで簡易版のイメージです。
今回のUIはこんな感じの作りです👇

・タイトル: 「予約一覧」
・表示: JTextAreaでデータをテキスト形式で表示
・スクロール対応: JScrollPaneでスクロールできるように
・データ: SQLiteに保存された予約データ

🛠️ コード全体

以下が今回のコードです👇
(Swingで画面を作り、JDBCでデータベースにアクセスしています)

package app;

import javax.swing.*;
import java.awt.*;
import java.sql.*;

public class ReservationViewer {

    public static void main(String[] args) {
        JFrame frame = new JFrame("予約一覧");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(600, 400);

        JTextArea textArea = new JTextArea();
        textArea.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(textArea);
        frame.add(scrollPane, BorderLayout.CENTER);

        // DBからデータ取得
        try {
            String dbPath = "resources/db/reservation.db";  // 相対パスの場合
            Connection conn = DriverManager.getConnection("jdbc:sqlite:" + dbPath);
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM Reservation");

            StringBuilder sb = new StringBuilder();
            while (rs.next()) {
                sb.append("ID: ").append(rs.getInt("id")).append("\n");
                sb.append("名前: ").append(rs.getString("name")).append("\n");
                sb.append("日付: ").append(rs.getString("date")).append("\n");
                sb.append("時間帯: ").append(rs.getString("time_slot")).append("\n");
                sb.append("症状: ").append(rs.getString("symptoms")).append("\n");
            }

            textArea.setText(sb.toString());
            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
            textArea.setText("データベースの読み込みに失敗しました。");
        }

        frame.setVisible(true);
    }
}

🏥 実行結果のイメージ

アプリを実行すると、こんな感じでデータが表示されます👇
予約情報確認用フォーム.png

💡 コードのポイント

・データベースへの接続
jdbc:sqlite:パスでSQLiteに接続しています。

・データの取得
SELECT * FROM Reservationで予約データを全件取得しています。

・JTextAreaに表示
取得したデータは文字列に整形して、JTextAreaに表示しています。

・スクロール対応
件数が増えても大丈夫なように、JScrollPaneでスクロールできるようにしています。

🗒️ おわりに

これで、管理者が予約データを簡単に確認できる画面ができました!
次回は、この予約データに対して、削除や更新の機能を追加したり、見やすい表形式(JTable)での表示にチャレンジしていく予定です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?