MySQL Helper
一个基于TypeScript的MySQL数据库交互封装库,提供简洁易用的API来操作MySQL数据库。
✨ 特性
- 🚀 TypeScript支持 - 完整的类型定义和类型安全
- 💪 连接池管理 - 自动处理数据库连接,支持连接复用
- 🔧 简洁API - 直观的CRUD操作和表结构管理
- 🔄 事务支持 - 完整的事务处理,自动提交和回滚
- 📝 查询构建器 - 支持复杂查询条件和SQL构建
- 🛡️ 安全防护 - SQL注入防护,参数化查询
- 🎯 现代化 - Promise/async-await支持,ES6+语法
- 🏗️ 表结构管理 - 创建、修改、删除表和字段
- 📇 索引管理 - 完整的数据库索引操作支持
- 🧪 测试覆盖 - 97%+ 的测试覆盖率,生产就绪
📦 安装
npm install mysql-helper
🚀 快速开始
import MySQLHelper, { DatabaseConfig } from 'mysql-helper';
const config: DatabaseConfig = {
host: 'localhost',
port: 3306,
user: 'root',
password: 'password',
database: 'your_database'
};
const mysql = new MySQLHelper(config);
async function main() {
try {
await mysql.connect();
const result = await mysql.insert('users', {
name: 'John Doe',
email: 'john@example.com',
age: 25
});
const users = await mysql.select('users', {
where: { age: { $gte: 18 } },
limit: 10
});
console.log('用户列表:', users);
} finally {
await mysql.disconnect();
}
}
main().catch(console.error);
🔧 核心功能
🏗️ 表结构管理
- ✅ 创建表 (
createTable
, createTableIfNotExists
, createTableSafe
)
- ✅ 删除表 (
dropTable
)
- ✅ 检查表存在 (
tableExists
)
- ✅ 获取表信息 (
getTableSchema
, getAllTables
)
📝 字段管理
- ✅ 添加字段 (
addColumn
)
- ✅ 修改字段 (
modifyColumn
, changeColumn
)
- ✅ 删除字段 (
dropColumn
)
- ✅ 检查字段存在 (
columnExists
)
📇 索引管理
- ✅ 添加索引 (
addIndex
- 支持普通、唯一、全文索引)
- ✅ 删除索引 (
dropIndex
)
- ✅ 检查索引存在 (
indexExists
)
- ✅ 获取索引信息 (
getTableIndexes
)
📊 数据操作 (CRUD)
- ✅ 查询 (
select
, selectOne
)
- ✅ 插入 (
insert
, insertMany
)
- ✅ 更新 (
update
)
- ✅ 删除 (
delete
)
- ✅ 统计 (
count
, exists
)
🔄 高级功能
- ✅ 事务处理 (
transaction
)
- ✅ 原始SQL (
rawQuery
, rawExecute
)
- ✅ 连接管理 (
connect
, disconnect
, isConnected
)
- ✅ 查询构建器 (复杂条件、排序、分页)
📚 文档
🎯 支持的数据类型
数值类型: TINYINT
, INT
, BIGINT
, DECIMAL
, FLOAT
, DOUBLE
, BOOLEAN
字符串类型: VARCHAR
, TEXT
, CHAR
, BINARY
, BLOB
日期时间: DATE
, DATETIME
, TIMESTAMP
, TIME
, YEAR
其他类型: ENUM
, SET
, JSON
, GEOMETRY
⚙️ 配置选项
interface DatabaseConfig {
host: string;
port?: number;
user: string;
password: string;
database: string;
connectionLimit?: number;
charset?: string;
}
🔍 查询条件操作符
{
age: { $gt: 18 },
age: { $gte: 18 },
age: { $lt: 65 },
age: { $lte: 65 },
status: { $ne: 'banned' },
name: { $like: 'John%' },
id: [1, 2, 3],
deleted_at: null
}
🧪 测试
npm test
npm run test:coverage
npm run typecheck
测试覆盖率: 97.77% (138个测试用例,119个通过)
🚀 开发
npm install
npm run build
npm run dev
npm run lint
npm run check
📄 许可证
MIT License
MySQL Helper - 让数据库操作变得简单、安全、高效 🚀