Minecraft UUID と Discord User ID の紐付けをDBに保存するDAO。

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

クラス説明

Minecraft UUID と Discord User ID の紐付けをDBに保存するDAO。

★ server_id でサーバー単位に切り分け

責務と見どころ

重点クラスの詳細解説

Minecraft UUID と Discord User ID の紐付けをDBに保存するDAO。discordlink パッケージの 小〜中規模クラスで、責務境界の要点を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. DiscordLinkDao
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. ensureTables
    不足テーブル・設定・内部状態を先に揃える入口です。変更を入れる前提条件の確認地点になります。
  3. loadAllLinks
    実体や対象状態を作る段階で、後続フローがどのデータを前提に動くかを掴めます。
  4. tryMigrateLegacy
    DB への問い合わせまたは更新処理を担当します。
  5. getDiscordId
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  6. getUuidByDiscordId
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  7. upsertLink
    既存の紐付けがあれば上書きする(uuid / discord_id のどちらが既に使われていても更新)。

内部サブシステムの地図

起動・前提準備

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

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

入口 API と対象解決

外部から呼ばれる公開メソッドや、対象プレイヤー・対象データ・対象ワールドを引き当てる経路です。

主なフィールド

代表フロー詳解

変更時の注意点

外部接点

主な永続化テーブル

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

IFthisdiscord_id

フィールド

VisibilityTypeName役割
publicStringTABLE_LINKTABLE_LINK の状態を保持します。
privateDataSourcedsDB 接続元を保持します。

コンストラクタ / 初期化

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

メソッド索引

NameVisibilityKind説明
DiscordLinkDaopublicコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。
ensureTablespublicメソッド必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
tryMigrateLegacyprivateメソッドDB への問い合わせまたは更新処理を担当します。
loadAllLinkspublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getDiscordIdpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
getUuidByDiscordIdpublicメソッド必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
upsertLinkpublicメソッド既存の紐付けがあれば上書きする(uuid / discord_id のどちらが既に使われていても更新)。

メソッド詳細

DiscordLinkDao

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

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

引数

throws

なし

主要な呼び出し順

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

ensureTables

メソッドpublic
public void ensureTables(String serverIdForLegacy) throws SQLException

必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。

引数

throws

SQLException

主要な呼び出し順

uq_srv_discordgetConnectionprepareStatementexecutetryMigrateLegacy

tryMigrateLegacy

メソッドprivate
private void tryMigrateLegacy(String serverIdForLegacy)

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

引数

throws

なし

主要な呼び出し順

getConnectionprepareStatementexecuteQueryexecutesetStringexecuteUpdateuq_srv_discord

getDiscordId

メソッドpublic
public Optional<Long> getDiscordId(String serverId, UUID uuid) throws SQLException

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

SQLException

主要な呼び出し順

getConnectionprepareStatementsetStringtoStringexecuteQuerynextgetLongempty

getUuidByDiscordId

メソッドpublic
public Optional<UUID> getUuidByDiscordId(String serverId, long discordId) throws SQLException

必要な状態を取得し、呼び出し側で利用しやすい形へ返します。

引数

throws

SQLException

主要な呼び出し順

getConnectionprepareStatementsetStringsetLongexecuteQuerynextfromStringgetString

代表的な処理フロー

  1. loadAllLinks フロー
    loadAllLinks → getConnection → prepareStatement → setString → executeQuery → next
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  2. ensureTables フロー
    ensureTables → uq_srv_discord → getConnection → prepareStatement → execute → tryMigrateLegacy
    必要なテーブル・状態・前提条件が揃っているかを確認し、不足分を補います。
  3. getDiscordId フロー
    getDiscordId → getConnection → prepareStatement → setString → toString → executeQuery
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  4. getUuidByDiscordId フロー
    getUuidByDiscordId → getConnection → prepareStatement → setString → setLong → executeQuery
    必要な状態を取得し、呼び出し側で利用しやすい形へ返します。
  5. tryMigrateLegacy フロー
    tryMigrateLegacy → getConnection → prepareStatement → executeQuery → execute → setString
    DB への問い合わせまたは更新処理を担当します。

外部との接点

Web ルート

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

SQL / テーブル

IFthisdiscord_id

関連クラス

補足