-
Notifications
You must be signed in to change notification settings - Fork 0
Home
github-actions[bot] edited this page Sep 21, 2026
·
16 revisions

适用于 Skript 的 ORM。定义好表结构,就能用 Skript 语法读写数据,无需手写 SQL。
简体中文 | English
on load:
create a connection to database "MySQL" with properties:
url: "jdbc:mysql://localhost:3306/mydb"
username: "root"
password: "123456"
register a database table "users":
id: bigint, primary key, auto increment, not null
name: string(64), not null
age: int, nullable
command /whois <text>:
trigger:
select one entity from table "users" and store the result in {_user::*}:
where all:
name = arg-1
if last database error is set:
send "查询失败: %last database error%" to sender
stop
send "name: %{_user::name}%, age: %{_user::age}%" to sender
command /adduser <text> <integer>:
trigger:
insert one entity into table "users" and wait:
values:
name: arg-1
age: arg-2
if last database error is set:
send "写入失败: %last database error%" to console
两段示例都不需要 SQL。插件负责生成语句,在服务端线程之外执行,再以普通 Skript 变量和值返回结果。
| Paper | 26.2 或更高。本插件针对该版本系列编译。 |
| Skript | 2.16.2 或更高。版本过低时,插件会自行禁用,并在控制台说明原因。 |
| MySQL | 已包含对应实现,并通过 MySQL 8 测试。Paper 自带驱动,无需另行安装。 |
| PostgreSQL | 已包含对应实现,并在 CI 中通过真实数据库测试。驱动会在首次启动时下载到服务端的 libraries/;见 兼容性。 |
| MongoDB | 已包含对应实现,并在 CI 中通过 MongoDB 8 测试。驱动与 PostgreSQL 一样,会在首次启动时下载。 |
| SkBee | 可选,仅 nbtcompound 列需要。脚本中的 NBT compound 也由 SkBee 提供。 |
- 从 releases 页面下载
skriptorm-<version>.jar,或自行构建,见 CONTRIBUTION.zh-CN.md。 - 将 jar 与 Skript 一起放入
plugins/。 - 启动一次服务端,再在脚本中建立连接、注册表,用
/sk reload加载。连接和表都由脚本定义,无需修改配置文件。
-
支持多条连接。
create a connection建立默认连接,named "logs"创建具名连接,in connection "logs":或use connection "logs"指定语句使用的连接。 -
每种数据操作都有对应的 Skript 语法。 写入、读取、更新、删除各有专用语法,包含
values或where主体时使用 section。所有语句都会等待完成。 -
一个事务就是一个 section。
database transaction:在主体结束时提交,其中的语句失败时回滚,运行期间独占一条连接。 -
写操作可以返回影响行数。
and store affected rows in {_rows}保存行数,具体含义取决于操作和数据库;条件更新可借此检测并发修改。见 影响行数。 -
错误可在脚本中读取。 每条语句都会等待完成,所以下一行执行时,
last database error已记录本次操作的错误;操作成功时则未设置。
| 页面 | 内容 |
|---|---|
| 快速上手 | 从空脚本开始,保存第一行数据。 |
| 连接 | 连接属性、具名连接、切换与断开连接。 |
| 表 | 列语法、全部类型、主键与修饰符,以及注册表不会做的事。 |
| 写入行 | 插入一行或多行、从变量插入、upsert,以及 values 块的写法。 |
| 读取行 | 单行、多行、分页与按 id 查询,where 块及结果结构。 |
| 更新与删除 | 按条件或按 id 更新、删除,以及 limit。 |
| 影响行数 |
store affected rows 子句,以及不使用事务的条件写入。 |
| 错误与等待 | 等待机制、last database error 及失败后的行为。 |
| 事务 | 一组语句如何共同提交或回滚,以及事务何时结束。 |
| 类型 | 每种列类型接受的值与存储方式。 |
| 排雷 | 常见问题:改表未生效、NULL 不显示、缺少 SkBee 时的 NBT。 |
| 菜谱 | 常见需求的完整脚本示例。 |
| 兼容性 | 版本、可用类型名、jar 内容及不支持的功能。 |
| 更新日志 | 各版本的改动,与 release 页面的说明一致。 |
./gradlew build 会在 build/dist/ 生成 shaded jar;./gradlew serverTest 会启动真实的 Paper 服务端,运行插件自测。详见 CONTRIBUTION.zh-CN.md。
MIT,见 LICENSE。
skript-orm
参考
实用指南
skript-orm (English)
Reference
- Connections
- Tables
- Writing rows
- Reading rows
- Updating and deleting
- Affected rows
- Errors and waiting
- Transactions
- Types
Practical guides
Wiki 由仓库中的 README 和 docs/ 自动生成。修改文档请到仓库提交,直接编辑 Wiki 的内容会在下次同步时被覆盖。
This wiki is generated from the README files and docs/ in the repository. Please submit changes there; direct wiki edits are overwritten on the next sync.