Package database
package database
資料庫連線與 JDBC 樣板層:提供整個伺服器存取 MySQL 的共用基礎設施。
連線核心為 DatabaseConnection —— 以 ThreadLocal 為每條執行緒持有單一
JDBC 連線(無連線池),依 DB_IP 是否為本機 loopback 決定 TLS 策略(本機關閉 TLS
並開放公鑰取得以相容 Connector/J 8.x 的 caching_sha2_password,遠端強制加密)。
Db 是輕量級 JDBC 樣板助手(query/queryFirst/update/
insertReturningKey 搭配函式式 RowMapper),把重複的裸 JDBC 收斂為 try-with-resources;
其載重不變量是只關閉 Statement/ResultSet,絕不關閉來自
DatabaseConnection 的共用連線。新的 DB 程式碼建議優先使用 Db。
DatabaseBootstrap 負責開服前的自動準備:在 server.Start.main() 第一行、
早於任何會觸碰 DatabaseConnection 的程式之前執行,自行解析 settings.ini、
自動建庫(CREATE DATABASE IF NOT EXISTS)並在缺少核心資料表時呼叫 mysql.exe
匯入初始化 SQL。DatabaseProperties 載入 db.properties 設定;
DatabaseException 為本層的非受檢例外型別。
-
ClassDescription開服前的資料庫自動準備(自動建庫 + 自動初始化)。All OdinMS servers maintain a Database Connection.資料庫操作失敗時拋出的非受檢例外。從
db.properties檔案載入資料庫連線屬性的工具類別。輕量級 JDBC 樣板助手:把「取得連線 → 建立PreparedStatement→ 綁定參數 → 走訪ResultSet→ 逐一關閉」這段在數十個檔案重複出現的裸 JDBC 樣板收斂成單一入口,並一律 以 try-with-resources 管理PreparedStatement/ResultSet的生命週期。Db.RowMapper<T>把單一資料列(ResultSet目前游標位置)對應成型別T的函式式介面。