Package database


package database
資料庫連線與 JDBC 樣板層:提供整個伺服器存取 MySQL 的共用基礎設施。

連線核心為 DatabaseConnection —— 以 ThreadLocal 為每條執行緒持有單一 JDBC 連線(無連線池),依 DB_IP 是否為本機 loopback 決定 TLS 策略(本機關閉 TLS 並開放公鑰取得以相容 Connector/J 8.x 的 caching_sha2_password,遠端強制加密)。

Db 是輕量級 JDBC 樣板助手(queryqueryFirstupdateinsertReturningKey 搭配函式式 RowMapper),把重複的裸 JDBC 收斂為 try-with-resources; 其載重不變量是只關閉 StatementResultSet,絕不關閉來自 DatabaseConnection 的共用連線。新的 DB 程式碼建議優先使用 Db

DatabaseBootstrap 負責開服前的自動準備:在 server.Start.main() 第一行、 早於任何會觸碰 DatabaseConnection 的程式之前執行,自行解析 settings.ini、 自動建庫(CREATE DATABASE IF NOT EXISTS)並在缺少核心資料表時呼叫 mysql.exe 匯入初始化 SQL。DatabaseProperties 載入 db.properties 設定; DatabaseException 為本層的非受檢例外型別。

  • Class
    Description
    開服前的資料庫自動準備(自動建庫 + 自動初始化)。
    All OdinMS servers maintain a Database Connection.
    資料庫操作失敗時拋出的非受檢例外。
    db.properties 檔案載入資料庫連線屬性的工具類別。
    輕量級 JDBC 樣板助手:把「取得連線 → 建立 PreparedStatement → 綁定參數 → 走訪 ResultSet → 逐一關閉」這段在數十個檔案重複出現的裸 JDBC 樣板收斂成單一入口,並一律 以 try-with-resources 管理 PreparedStatement/ResultSet 的生命週期。
    把單一資料列(ResultSet 目前游標位置)對應成型別 T 的函式式介面。