h5 sqlite 操作封装

// 数据库名称 const namesjk = "sl" // 存储路径 const path = `_doc/${name}.db` /** 基本操作 * 查询数据库连接状态 isOpenDatabase * 无参数 * 返回 true false * * * 关闭数据库 closeDatabase * 无参数 * Promise 成功/失败 * * * 打开/创建数据库 openDatabase * 无参数 * Promise 成功/失败 * * 查询 selectSql * sql * Promise 成功/失败 * * 执行 executeSql * sql * Promise 成功/失败 * * * 事务 transaction * begin(开始事务)、commit(提交)、rollback(回滚)。 * Promise 成功/失败 * */ /** 表操作 * * * 创建表 CreateATable * 表名称 表结构 除id默认的其它字段 {a:{type:'sqlite的数据类型,默认 TEXT',isnull:false}} * 成功/失败 true false * * * 修改表 UpdateATable * 表名称 表结构 除id默认的其它字段 {a:{type:'sqlite的数据类型,默认 TEXT',isnull:false}} * 成功/失败 true false * * * 删除表 DelTable * 表名称 * 成功/失败 true false * */ /** 增删改查操作 * * 增加 Increase * 表名称 数据 {a:1,b:1} * 返回数据 / 0 * * 删除 Delete * 表名称 条件默认id=id * 返回数据 / 0 * * 清空 Clear * 表名称 是否截断 * 返回数据 / 0 * * 更新 Update * 表名称 数据 {a:1,b:1} 条件默认id=id * 返回数据 / 0 * * * 查询 Select * 表名称 数据['a','b']默认* 条件默认 * 返回数据 / 0 * * */ // ***************基本操作****************************** // 查询数据库连接状态 // 返回 true false export async function isOpenDatabase() { return plus.sqlite.isOpenDatabase({ name: namesjk, path: path }) } // 关闭数据库 export async function closeDatabase() { return new Promise((resolve, reject) => { plus.sqlite.closeDatabase({ name: namesjk, success(e) { resolve(e) }, fail(e) { reject(e) } }) }) } // 打开/创建数据库 export async function openDatabase() { return new Promise((resolve, reject) => { plus.sqlite.openDatabase({ name: namesjk, path: path, success(e) { resolve(e) }, fail(e) { reject(e) } }) }) } // 查询 // sql export async function selectSql(sqlCode) { return new Promise((resolve, reject) => { plus.sqlite.selectSql({ name: namesjk, sql: sqlCode, success(res) { resolve(res) }, fail(e) { reject(e) } }) }) } // 执行 // sql export async function executeSql(sqlCode) { return new Promise((resolve, reject) => { plus.sqlite.executeSql({ name: namesjk, sql: sqlCode, success(res) { resolve(res) }, fail(e) { reject(e) } }) }) } // 事务 // begin(开始事务)、commit(提交)、rollback(回滚)。 export async function transaction(operation) { return new Promise((resolve, reject) => { plus.sqlite.transaction({ name: namesjk, operation: operation, success(res) { resolve(res) }, fail(e) { reject(e) } }) }) } // *********表操作************************ // 创建表 // 表名称 表结构 除id默认的其它字段 {a:{type:'sqlite的数据类型,默认 TEXT',isnull:false}} // 成功/失败 true false export async function CreateATable(name, obj) { selectSql(`SELECT name FROM sqlite_master WHERE type= 'table' AND name= '${name}'`).then( (e) => { if (e.length == 0) { let sql1 = `create table if not exists ${name} ( "id" INTEGER PRIMARY KEY AUTOINCREMENT, ${Object.keys(obj).map(x=>{ return `"${x}" ${obj[x]['type']?obj[x]['type']:'TEXT'} ${obj[x]['isnull']?'NOT NULL':''}` }).join(',')} )` executeSql(sql1).then((e) => { return true }).catch((err) => { console.log("创建表失败:", err) return false }) } }).catch((e) => { console.log("创建表失败:", err) return false }) } // 修改表 // 表名称 表结构 除id默认的其它字段 {a:{type:'sqlite的数据类型,默认 TEXT',isnull:false}} // 成功/失败 true false export async function UpdateATable(name, obj) { DelTable(name) CreateATable(name, obj) } // 删除表 // 表名称 // 成功/失败 true false export async function DelTable(name) { selectSql(`SELECT name FROM sqlite_master WHERE type= 'table' AND name= '${name}'`).then( (e) => { if (e.length > 0) { let sql1 = `drop table ${name}` executeSql(sql1).then((e) => { return true }).catch((err) => { console.log("删除表失败:", err) return false }) } }).catch((e) => { console.log("删除表失败:", err) return false }) } // **************增删改查******************************** // 增加 // 表名称 数据 {a:1,b:1} export async function Increase(name, obj) { let sql1 = `INSERT INTO ${name} (${Object.keys(obj).map(x=>{ return `${x}` }).join(',')}) VALUES (${Object.keys(obj).map(x=>{ return `${obj[x]}` }).join(',')});` executeSql(sql1).then((e) => { return e }).catch((err) => { console.log("增加失败:", err) return 0 }) } // 删除 // 表名称 条件默认id=id export async function Delete(name, sql) { let sql1 = `delete from ${name} where ${sql?sql:'id=id'}` executeSql(sql1).then((e) => { return e }).catch((err) => { console.log("删除失败:", err) return 0 }) } // 清空 // 表名称 是否截断 export async function Clear(name,isTRUNCATE) { let sql1 = isTRUNCATE?`TRUNCATE ${name}`:`delete from ${name}` executeSql(sql1).then((e) => { return e }).catch((err) => { console.log("删除失败:", err) return 0 }) } // 更新 // 表名称 数据 {a:1,b:1} 条件默认id=id export async function Update(name, obj, sql) { let sql1 = `UPDATE ${name} SET ${Object.keys(obj).map(x=>{ return `${x} = ${obj[x]} ` }).join(',')} where ${sql?sql:'id=id'}` executeSql(sql1).then((e) => { return e }).catch((err) => { console.log("更新失败:", err) return 0 }) } // 查询 // 表名称 数据['a','b']默认* 条件默认 export async function Select(name, obj, sql) { let sql1 = `select ${obj && obj.length>0?obj.join(','):'*'} from ${name} ${sql?'where ' + sql:''}` selectSql(sql1).then((e) => { return e }).catch((err) => { console.log("查询失败:", err) return 0 }) }
上一篇:【笔记2-1】ESP32:基于vscode的espidf插件的开发环境搭建


下一篇:工业—使用Flink处理Kafka中的数据_ProduceRecord2