npx agentspec-cli install b12702d2-0b19-4bf6-98b9-f69984f0ce2d --framework ClaudeCode→ .claude/skills/orm-mysql-usage/SKILL.md
# @axiosleo/orm-mysql Usage Guide
## Installation
```bash
npm install @axiosleo/orm-mysql
```
## Setup
### Create a Connection
```javascript
const { createClient, QueryHandler } = require("@axiosleo/orm-mysql");
const conn = createClient({
host: "localhost",
port: 3306,
user: "root",
password: "password",
database: "my_db",
});
const db = new QueryHandler(conn);
```
### Create a Connection Pool (recommended for production)
```javascript
const { createPool, QueryHandler } = require("@axiosleo/orm-mysql");
const pool = createPool({
host: "localhost",
port: 3306,
user: "root",
password: "password",
database: "my_db",
connectionLimit: 10,
});
const db = new QueryHandler(pool);
```
### Using MySQLClient
```javascript
const { MySQLClient } = require("@axiosleo/orm-mysql");
const client = new MySQLClient({
host: "localhost",
port: 3306,
user: "root",
password: "password",
database: "my_db",
}, null, "pool"); // "default" | "promise" | "pool"
const rows = await client.table("users").select();
await client.close();
```
## Class Hierarchy
```
QueryCondition -- where clauses (where, whereIn, whereLike, whereBetween...)
└── Query -- query building (table, attr, join, orderBy, limit, page...)
└── QueryOperator -- execution (select, find, insert, update, delete...)
└── TransactionOperator -- adds append() for row locking
```
- `QueryHandler` wraps a connection/pool and creates `QueryOperator` via `.table(name)`
- `TransactionHandler` wraps a promise connection and creates `TransactionOperator` via `.table(name)`
## Quick Start
```javascript
const db = new QueryHandler(conn);
// SELECT
const users = await db.table("users")
.where("age", ">", 18)
.orderBy("name", "asc")
.limit(10)
.select("id", "name", "age");
// INSERT
await db.table("users").insert({ name: "Joe", age: 25 });
// UPDATE
await db.table("users").where("id", 1).update({ age: 26 });
// DELETE
await db.table("users").where("id", 1).delete();
// COUNT
const total = await db.table("users").where("age", ">", 18).count();
// IMPORTANT: for paginated lists, reuse the SAME builder for count() and select() -- see pagination.md
// FIND single row
const user = await db.table("users").where("id", 1).find();
```
## Dry Run with notExec()
Call `notExec()` before any CRUD method to get a `Builder` object with `.sql` and `.values` instead of executing:
```javascript
const builder = await db.table("users")
.where("age", ">", 18)
.notExec()
.select("id", "name");
console.log(builder.sql); // "SELECT `id`, `name` FROM `users` WHERE `age` > ?"
console.log(builder.values); // [18]
```
## Reference Files
| Scenario | File |
|----------|------|
| Building queries (table, join, orderBy, limit, groupBy, attr) | [query-building.md](query-building.md) |
| Where conditions (where, whereIn, whereLike, whereBetween...) | [where-conditions.md](where-conditions.md) |
| CRUD operations (select, find, count, insert, update, delete, incrBy, upsertRow) | [crud-operations.md](crud-operations.md) |
| Pagination (reuse the same builder for count() and select(), avoid duplicated where clauses) | [pagination.md](pagination.md) |
| Transactions (beginTransaction, commit, rollback, FOR UPDATE) | [transactions.md](transactions.md) |
## Hooks
Register pre/post hooks for query operations:
```javascript
const { Hook } = require("@axiosleo/orm-mysql");
Hook.pre(async (options) => {
console.log("Before:", options.operator, options.tables);
}, { table: "users", opt: "insert" });
Hook.post(async (options, result) => {
console.log("After:", result);
}, { table: "users", opt: "insert" });
```
## Schema Helpers
```javascript
const exists = await db.existTable("users");
const dbExists = await db.existDatabase("my_db");
const fields = await db.getTableFields("my_db", "users", "COLUMN_NAME", "DATA_TYPE");
```
## Raw SQL
```javascript
const result = await db.query({ sql: "SELECT * FROM users WHERE id = ?", values: [1] });
```
Built on the Agent Skills standard
sql
Write SQL queries, optimize database performance, design schemas, and debug SQL issues. Use for database operations, query optimization, and schema design.
by AgentHub Crawler
Database
Cursor IDE rules and conventions for AI-assisted development.
by AgentHub Crawler
database-optimization
Query optimization, indexing strategies, and database performance tuning for PostgreSQL and MySQL
by AgentHub Crawler
Sign in to leave a comment.
db
Query the database — list schemas, tables, describe a table, or run SQL. Accepts arguments like schemas, tables, describe <table>, or raw SQL.
by AgentHub Crawler