## node mysql jdbc
- 基于mysql2封装的数据库处理工具
- 在node环境中实现对 mysql 数据库的jdbc操作
- node版本: v20+

- 安装
```sh
npm i ds-mysql -S
```
## api-使用示例
- 基础用法
```ts
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()
})
```
- 高级用法
```ts
// 查看建表时的表结构信息
// 1-使用DDL工具生成可执行的sql
const ss = DDL.sql_lookTableConfig(testTable.name)
// 2-执行sql语句
dsSql.poolExeSqlSafe(ss).then(res=>{
  console.log(dsSql.parseResult(res))//解析查询结果
  dsSql.close()//关闭连接池
})
```
- 事务管理
```ts
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')
})
```