generate-database-managerlisted
Install: claude install-skill MrPippi/MJP-Claude-Skills
# Generate Database Manager Skill
## 目標
產生支援 SQLite(單機)與 MySQL(伺服器)雙模式切換的 `DatabaseManager` 類別,使用 HikariCP 連線池管理資料庫連線,並提供非同步查詢包裝以避免阻塞主執行緒。
---
## 使用流程
1. **詢問基本資訊**:插件名稱、套件名、是否需要範例資料表
2. **更新 pom.xml**:加入 HikariCP 與 SQLite/MySQL 驅動依賴
3. **產生 DatabaseManager.java**:含連線池初始化、資料表建立、CRUD 操作
4. **說明設定方式**:`config.yml` 中的 `storage-type` 切換
---
## pom.xml 依賴
```xml
<!-- HikariCP 連線池 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
<scope>compile</scope>
</dependency>
<!-- SQLite 驅動(單機模式) -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.46.1.3</version>
<scope>compile</scope>
</dependency>
<!-- MySQL 驅動(伺服器模式,可選) -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>9.0.0</version>
<scope>compile</scope>
</dependency>
```
注意:HikariCP 與 JDBC 驅動需透過 `maven-shade-plugin` 打包進 JAR。
---
## 代碼範本
### DatabaseManager.java
```java
package com.example.myplugin.managers;
import com.example.myplugin.MyPlugin;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.bukkit.scheduler.BukkitRunnable;
import java.io.File;
import java.sql.*;
import java.util.concurrent.CompletableFuture;
import java.util.logging.Level;
public class DatabaseManager {
private final MyPlugin plugin;
private HikariDataSource dataSource;
public DatabaseManager(MyPlug