Minigame Dao に関するDBアクセスを担当します。

1Fields
1Constructors
7Methods
153Lines
Package
com.example.rankingplugin.minigame.db
Source
minigame/db/MinigameDao.java
Kind
class
Roles
DB / 永続化
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る

クラス説明

クラス直前の Javadoc は見つかりませんでした。ソースとメソッド構成から責務を補完しています。

責務と見どころ

重点クラスの詳細解説

Minigame Dao に関するDBアクセスを担当します。minigame.db パッケージの 小〜中規模クラスで、永続化境界を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. MinigameDao
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. initTables
    不足テーブル・設定・内部状態を先に揃える入口です。変更を入れる前提条件の確認地点になります。
  3. recordScore
    結果を反映・永続化する境界です。表示だけ直って保存が壊れる系の切り分けに向きます。
  4. currentSeason
    月次シーズン(例: 2025-08)
  5. topLines
    旧:タイムアタック用(小さい方が良い)
  6. personalBestDesc
    個人ベスト(降順=大きいほど良い)。
  7. topLinesDesc
    降順トップ表示。

内部サブシステムの地図

起動・前提準備

初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。

主なメソッド
主なフィールド

状態反映と永続化

メモリ状態と保存状態を揃え、結果を次の呼び出しや画面表示へ繋ぐ部分です。

主なメソッド
主なフィールド

永続化と状態同期

DB テーブルとの境界です。スキーマ変更や保存漏れの切り分けはここから行います。

主なメソッド
主なフィールド
なし

代表フロー詳解

初期化と起動の流れ

  1. MinigameDao
  2. initTables

このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。

通常運用の中心フロー

  1. recordScore

イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。

反映・保存・終了の流れ

  1. recordScore

結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。

変更時の注意点

外部接点

主な永続化テーブル

SQL 文字列から抽出できた主要テーブルです。スキーマ変更時の確認用です。

mg_score

フィールド

VisibilityTypeName役割
privateDataSourcedsDB 接続元を保持します。

コンストラクタ / 初期化

Signature説明主要呼び出し
public MinigameDao(DataSource ds)依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。主要呼び出しなし

メソッド索引

NameVisibilityKind説明
MinigameDaopublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
initTablespublicメソッド初期化と各種登録を行い、機能を有効化します。
currentSeasonpublicメソッド月次シーズン(例: 2025-08)
recordScorepublicメソッドDB への問い合わせまたは更新処理を担当します。
topLinespublicメソッド旧:タイムアタック用(小さい方が良い)
personalBestDescpublicメソッド個人ベスト(降順=大きいほど良い)。
topLinesDescpublicメソッド降順トップ表示。

メソッド詳細

MinigameDao

コンストラクタpublic
public MinigameDao(DataSource ds)

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

initTables

メソッドpublic
public void initTables() throws SQLException

初期化と各種登録を行い、機能を有効化します。

引数

throws

SQLException

主要な呼び出し順

getConnectioncreateStatementexecutemg_scorevarcharcharidx_mg_scoreidx_mg_personal

currentSeason

メソッドpublicstatic
public static String currentSeason()

月次シーズン(例: 2025-08)

引数

throws

なし

主要な呼び出し順

nowformatofPattern

recordScore

メソッドpublic
public void recordScore(String gameId, String arenaId, UUID player, String name, double value, String metaJson, String season)

DB への問い合わせまたは更新処理を担当します。

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementmg_scorevaluessetStringtoStringsetDoubleexecuteUpdate

topLines

メソッドpublic
public List<String> topLines(String gameId, String arenaId, String season, int limit)

旧:タイムアタック用(小さい方が良い)

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementsetStringsetIntmaxexecuteQuerynextgetString

personalBestDesc

メソッドpublic
public double personalBestDesc(String gameId, String arenaId, UUID player, String season)

個人ベスト(降順=大きいほど良い)。

引数

throws

なし

主要な呼び出し順

isBlankcoalescemaxformattedgetConnectionprepareStatementsetStringisEmpty

topLinesDesc

メソッドpublic
public List<String> topLinesDesc(String gameId, String arenaId, String season, int limit)

降順トップ表示。

引数

throws

なし

主要な呼び出し順

isBlankmaxformattedgetConnectionprepareStatementsetStringisEmptysetInt

代表的な処理フロー

  1. initTables フロー
    initTables → getConnection → createStatement → execute → mg_score → varchar
    初期化と各種登録を行い、機能を有効化します。
  2. personalBestDesc フロー
    personalBestDesc → isBlank → coalesce → max → formatted → getConnection
    個人ベスト(降順=大きいほど良い)。
  3. recordScore フロー
    recordScore → getConnection → prepareStatement → mg_score → values → setString
    DB への問い合わせまたは更新処理を担当します。
  4. topLines フロー
    topLines → getConnection → prepareStatement → setString → setInt → max
    旧:タイムアタック用(小さい方が良い)
  5. topLinesDesc フロー
    topLinesDesc → isBlank → max → formatted → getConnection → prepareStatement
    降順トップ表示。

外部との接点

Web ルート

このクラス内に目立つ Web ルート定義は見つかりませんでした。

SQL / テーブル

mg_score

関連クラス

補足