服务器使用量
未统计
服务玩家数
未统计
下载量
4,564
插件详细介绍
如需支持,请访问:https://discord.gg/DpNFSQu
SQLiteLib 是一个旨在简化 Minecraft 插件开发中 SQLite 数据库操作的库。它源于作者在 Spigot 上发布的 SQLite 教程,许多开发者反馈原代码难以理解或使用。因此,SQLiteLib 应运而生,为开发者提供了创建数据库、执行查询和操作数据的全套基础工具,并且支持在游戏内直接使用命令进行操作。
主要功能
- 创建数据库:轻松初始化和管理 SQLite 数据库。
- 查询单一值:从数据库中检索单个数据点。
- 查询列表值:获取某一行的多个值作为列表。
- 查询映射表:获取多行数据,并以映射(Map)形式组织。
- 执行 SQL 语句:支持执行任何自定义的 SQL 语句。
- 游戏内命令:无需重启服务器,即可通过命令直接操作数据库。
命令
- /sqlite 或 /sl - 基础命令。
- /sl execute {database} {statement} - 在指定数据库上执行一条 SQL 语句。
- /sl init {database} {initial_statement} - 创建/初始化数据库。
- /sl queryvalue {database} {row} {statement} - 查询并打印单个值。
- /sl queryRow {database} {row} {statement} - 查询并打印指定行的所有值。
权限
- sqlite.use - 允许使用 SQLiteLib 的所有命令。
数据存储
所有数据库文件都存储在插件目录下的 SQLiteLib 文件夹中。你可以在此手动编辑或删除数据库文件。
支持与建议
如果你有任何建议、发现了错误,或者需要帮助
- 请在资源的讨论区发帖。
- 也可以加入 Discord 服务器获取即时支持:https://discord.gg/DpNFSQu
接入 SQLiteLib
- 下载 SQLiteLib 的 JAR 文件。
- 将其添加到你的项目构建路径中。
- 在你的主插件类中,通过以下代码接入库:
public SQLiteLib sqlLib;
@Override
public void onEnable() {
sqlLib = SQLiteLib.hookSQLiteLib();
}初始化数据库
接入后,首先需要初始化数据库。这是使用其他所有功能的前提。
sqlLib.initializeDatabase("database_name", "CREATE TABLE IF NOT EXISTS table_name");- 参数说明:
- `database_name`:数据库名称。- `initial_statement`:初始化 SQL 语句,通常用于创建表结构。1.3 版本新增:你可以指定插件实例,以确保数据库文件创建在正确的插件目录下。
sqlLib.initializeDatabase(pluginInstance, "database_name", "CREATE TABLE IF NOT EXISTS table_name");此方法在数据库不存在时会创建它,存在时则直接加载。请确保在插件需要数据库时运行此代码。
执行 SQL 语句
此方法允许你执行任何 SQL 语句,提供了最大的灵活性。
if (sqlLib.getDatabase("name").executeStatement("statement")){
// 语句执行成功
} else {
// 执行失败
}查询单一值
用于从查询结果中获取一个特定的值。返回值为 Object 类型,需要根据实际情况进行类型转换。
String testValue = (String) sqlLib.getDatabase("test").queryValue("statement", "row");示例
假设有一个简单的 test.db 数据库,表结构如下:
| ID |
|----|
| 1 |
| 2 |
| 3 |查询 ID 为 1 的记录
String test = (String) sqlLib.getDatabase("test").queryValue("SELECT * FROM test WHERE id = 1", "ID");注意:应尽量让查询语句只返回一个值,而不是一个列表。
查询行数据
此方法返回一个 List<Object>,包含指定行(列)的所有值。
List<Object> results = sqlLib.getDatabase("test").queryRow("SELECT * FROM test", "ID");
for (Object obj : results){
String ID = (String)obj;
System.out.println("ID: " + ID);
}查询多行映射数据
此方法返回一个 Map<String, List<Object>>,其中键是行(列)名,值是该列下所有数据的列表。
Map<String, List<Object>> rows = sqlLib.getDatabase("test").queryMultipleRows("SELECT * FROM test", "row1", "row2", "row3");
String ID = (String) rows.get("row1").get(0); // 获取 row1 列的第一个值获取帮助
如需更多帮助,请随时加入 Discord 服务器:https://discord.gg/DpNFSQu
测试支持版本
版本分布
基本信息
插件名称
SQLiteLib
作者
pablo67340
平台
Bukkit / Spigot
支持版本
1.7 - 1.12
点赞数
1
最近版本
暂无数据
-