ds-mysql
v1.0.3
Published
implementing JDBC operations on MySQL databases in a node environment
Readme
node mysql jdbc
基于mysql2封装的数据库处理工具
在node环境中实现对 mysql 数据库的jdbc操作
node版本: v20+
安装
npm i ds-mysql -Sapi-使用示例
- 基础用法
import { DsSql, DDL } from 'ds-mysql'
import type { IBaseTable } from "ds-mysql/dist/types";
//实例化sql对象
const dsSql = new DsSql({
password: 'xxx', database: 'xxx'
})
// 定义表结构
const testTable:IBaseTable = {
name: 'test_tb', comment: '测试',
columns: [
{ keyName: 'name', keyType: 'VARCHAR', isNotNull: 1 },
{ keyName: 'age', keyType: 'INTEGER', isNotNull: 1 }
]
}
// 清空表数据
sql.poolExeSql(DML.sql_clearTable(testTable.name))
// 删除表
sql.poolExeSql(DDL.sql_deleteTable(testTable.name))
// 创建新表
sql.poolExeSql(DDL.sql_creatTable(testTable))
// 添加新数据
sql.add(testTable, [
{name: 'c', age: 19},
{name: 'd', time1: DML.opDateTime_UTC()},
])
// 删除数据
sql.delete(testTable.name, [{ k: 'name', h: '%', v: 'c' }])
// 修改数据
sql.update(testTable.name,
[
{ keyName: 'name', keyValue: 'cc' },
{ keyName: 'age', keyValue: 18 },
],
[{ k: 'name', h: '=', v: 'c' }]
)
// 查询表数据
dsSql.list('test_tb', [], ['id','name','age']).then(res=>{
if(res){
console.log(res.total, res.records)
}
dsSql.close()
})- 高级用法
// 查看建表时的表结构信息
// 1-使用DDL工具生成可执行的sql
const ss = DDL.sql_lookTableConfig(testTable.name)
// 2-执行sql语句
dsSql.poolExeSqlSafe(ss).then(res=>{
console.log(dsSql.parseResult(res))//解析查询结果
dsSql.close()//关闭连接池
})- 事务管理
const sql = new DsSql({
password: 'xxx', database: 'xxx'
})
sql.transaction(async (con)=>{
// const tables = await con.query(DDL.sql_lookTables())
// console.log(tables)
const res = await sql.add('test_tb', [{name:'aa',age:18}],con)
const res2 = await sql.add('test_tb_2', [{title:'aa',age:18}],con)
return !!(res && res2);
}).then(()=>{
sql.close()
}).catch(err=>{
console.log(err, '--test')
})