封装测试

dev2
wangchen 2023-08-01 16:37:41 +08:00
parent 3fd7abbb09
commit 2bc6b99a71
4 changed files with 494 additions and 12 deletions

223
common/rSqlite.js 100644
View File

@ -0,0 +1,223 @@
module.exports = {
dbName: 'databaseName', // 数据库名称
dbPath: '_downloads/databaseName.db', // 数据库地址,推荐以下划线为开头 _doc/xxx.db
// 判断数据库是否打开
isOpen() {
// 数据库打开了就返回 true,否则返回 false
var open = plus.sqlite.isOpenDatabase({
name: this.dbName, // 数据库名称
path: this.dbPath // 数据库地址
})
return open;
},
// 创建数据库 或 有该数据库就打开
openSqlite() {
return new Promise((resolve, reject) => {
// 打开数据库
plus.sqlite.openDatabase({
name: this.dbName,
path: this.dbPath,
success(e) {
resolve(e); // 成功回调
},
fail(e) {
reject(e); // 失败回调
}
})
})
},
// 关闭数据库
closeSqlite() {
return new Promise((resolve, reject) => {
plus.sqlite.closeDatabase({
name: this.dbName,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 数据库建表 sql:'CREATE TABLE IF NOT EXISTS dbTable("id" varchar(50),"name" TEXT)
// 创建 CREATE TABLE IF NOT EXISTS 、 dbTable 是表名,不能用数字开头、括号里是表格的表头
// data 是字段设置字符串,逗号分隔,如"id varchar(32),name varchar(32),age int ..."
createTable(dbTable, data) {
return new Promise((resolve, reject) => {
// executeSql: 执行增删改等操作的SQL语句
plus.sqlite.executeSql({
name: this.dbName,
sql: `CREATE TABLE IF NOT EXISTS ${dbTable}(${data})`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 数据库删表 sql:'DROP TABLE dbTable'
dropTable(dbTable) {
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: this.dbName,
sql: `DROP TABLE ${dbTable}`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 向表格里添加数据 sql:'INSERT INTO dbTable VALUES('x','x','x')' 对应新增
// 或者 sql:'INSERT INTO dbTable ('x','x','x') VALUES('x','x','x')' 具体新增
// 插入 INSERT INTO 、 dbTable 是表名、根据表头列名插入列值
insertTableData(dbTable, data, condition) {
// 判断有没有传参
if (dbTable !== undefined && data !== undefined) {
// 判断传的参是否有值
console.log(data,condition);
var bol = (data == "");
if (!bol) {
if (condition == undefined) {
var sql = `INSERT INTO ${dbTable} VALUES(${data})`;
console.log(sql);
} else {
var sql = `INSERT INTO ${dbTable} (${condition}) VALUES(${data})`;
}
// console.log(sql);
return new Promise((resolve, reject) => { resolve(sql) })
} else {
return new Promise((resolve, reject) => { reject("错误添加") })
}
} else {
return new Promise((resolve, reject) => { reject("错误添加") })
}
},
// 查询获取数据库里的数据 sql:'SELECT * FROM dbTable WHERE lname = 'lvalue''
// 查询 SELECT * FROM 、 dbTable 是表名、 WHERE 查找条件 lname,lvalue 是查询条件的列名和列值
selectTableData(dbTable, fieldName1, fieldValue1, fieldName2, fieldValue2,fieldName3,fieldValue3) {
if (dbTable !== undefined) {
// 第一个是表单名称,后两个参数是列表名,用来检索
if (fieldName1 !== undefined && fieldName2 !== undefined && fieldName3!==undefined) {
// 三个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}' AND ${fieldName2} = '${fieldValue2}' AND ${fieldName3}='${fieldValue3}'`;
}
if (fieldName1 !== undefined && fieldName2 !== undefined &&fieldName3==undefined) {
// 两个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}' AND ${fieldName2} = '${fieldValue2}'`;
}
if (fieldName1 !== undefined && fieldName2 == undefined && fieldName3==undefined ) {
// 一个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}'`;
// console.log(sql);
}
if (fieldName1 == undefined) {
var sql = `SELECT * FROM ${dbTable}`;
}
return new Promise((resolve, reject) => {
// 表格查询数据,执行查询的SQL语句
plus.sqlite.selectSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => { reject("错误查询") });
}
},
// 删除表里的数据 sql:'DELETE FROM dbTable WHERE lname = 'lvalue''
// 删除 DELETE FROM 、 dbTable 是表名、 WHERE 查找条件 lname,lvalue 是查询条件的列名和列值
deleteTableData(dbTable, fieldName1, fieldValue1, fieldName2, fieldValue2) {
if (dbTable !== undefined) {
if (lname == undefined) {
var sql = `DELETE FROM ${dbTable}`;
} else {
if (ww !== undefined) {
// 两个检索条件
var sql = `DELETE FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}' AND ${ww} = '${fieldValue2}'`;
} else {
// 一个检索条件
var sql = `DELETE FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}'`;
}
}
return new Promise((resolve, reject) => {
// 删除表数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => { reject("错误删除") });
}
},
// 修改数据表里的数据 sql:"UPDATE dbTable SET 列名='列值',列名='列值' WHERE lname = 'lvalue'"
// 修改 UPDATE 、 dbTable 是表名, data: 是由要"列名1=值1,列名2=值2..."拼接的字符串, lname,lvalue 是查询条件的列名和列值
updateTableData(dbTable, data, fieldName, fieldValue) {
if (lname == undefined) {
var sql = `UPDATE ${dbTable} SET ${data}`;
} else {
var sql = `UPDATE ${dbTable} SET ${data} WHERE ${fieldName} = '${fieldValue}'`;
}
// WHERE 前面是要修改的列名、列值,后面是条件的列名、列值
return new Promise((resolve, reject) => {
// 修改表数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 获取指定数据条数 sql:"SELECT * FROM dbTable ORDER BY 'id' DESC LIMIT 15 OFFSET 'num'"
// dbTable 表名, ORDER BY 代表排序默认正序, id 是排序的条件 DESC 代表倒序,从最后一条数据开始拿
// LIMIT 15 OFFSET '${num}',这句的意思是跳过 num 条拿 15 条数据, num 为跳过多少条数据是动态值
// 例 初始num设为0就从最后的数据开始拿15条下次不拿刚获取的数据所以可以让num为15这样就能一步一步的拿完所有的数据
pullSQL(dbTable, id, num) {
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: this.dbName,
sql: `SELECT * FROM ${dbTable} ORDER BY '${id}' DESC LIMIT 15 OFFSET '${num}'`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
}

View File

@ -0,0 +1,233 @@
module.exports = {
dbName: 'databaseName', // 数据库名称
dbPath: '_downloads/databaseName.db', // 数据库地址,推荐以下划线为开头 _doc/xxx.db
// 判断数据库是否打开
isOpen() {
// 数据库打开了就返回 true,否则返回 false
var open = plus.sqlite.isOpenDatabase({
name: this.dbName, // 数据库名称
path: this.dbPath // 数据库地址
})
return open;
},
// 创建数据库 或 有该数据库就打开
openSqlite() {
return new Promise((resolve, reject) => {
// 打开数据库
plus.sqlite.openDatabase({
name: this.dbName,
path: this.dbPath,
success(e) {
resolve(e); // 成功回调
},
fail(e) {
reject(e); // 失败回调
}
})
})
},
// 关闭数据库
closeSqlite() {
return new Promise((resolve, reject) => {
plus.sqlite.closeDatabase({
name: this.dbName,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 数据库建表 sql:'CREATE TABLE IF NOT EXISTS dbTable("id" varchar(50),"name" TEXT)
// 创建 CREATE TABLE IF NOT EXISTS 、 dbTable 是表名,不能用数字开头、括号里是表格的表头
// data 是字段设置字符串,逗号分隔,如"id varchar(32),name varchar(32),age int ..."
createTable(dbTable, data) {
return new Promise((resolve, reject) => {
// executeSql: 执行增删改等操作的SQL语句
plus.sqlite.executeSql({
name: this.dbName,
sql: `CREATE TABLE IF NOT EXISTS ${dbTable}(${data})`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 数据库删表 sql:'DROP TABLE dbTable'
dropTable(dbTable) {
return new Promise((resolve, reject) => {
plus.sqlite.executeSql({
name: this.dbName,
sql: `DROP TABLE ${dbTable}`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 向表格里添加数据 sql:'INSERT INTO dbTable VALUES('x','x','x')' 对应新增
// 或者 sql:'INSERT INTO dbTable ('x','x','x') VALUES('x','x','x')' 具体新增
// 插入 INSERT INTO 、 dbTable 是表名、根据表头列名插入列值
insertTableData(dbTable, data, condition) {
// 判断有没有传参
if (dbTable !== undefined && data !== undefined) {
// 判断传的参是否有值
var bol = (JSON.stringify(data) == "{}");
if (!bol) {
if (condition == undefined) {
var sql = `INSERT INTO ${dbTable} VALUES('${data}')`;
} else {
var sql = `INSERT INTO ${dbTable} (${condition}) VALUES(${data})`;
}
// console.log(sql);
return new Promise((resolve, reject) => {
// 表格添加数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => { reject("错误添加") })
}
} else {
return new Promise((resolve, reject) => { reject("错误添加") })
}
},
// 查询获取数据库里的数据 sql:'SELECT * FROM dbTable WHERE lname = 'lvalue''
// 查询 SELECT * FROM 、 dbTable 是表名、 WHERE 查找条件 lname,lvalue 是查询条件的列名和列值
selectTableData(dbTable, fieldName1, fieldValue1, fieldName2, fieldValue2,fieldName3,fieldValue3) {
if (dbTable !== undefined) {
// 第一个是表单名称,后两个参数是列表名,用来检索
if (fieldName1 !== undefined && fieldName2 !== undefined && fieldName3!==undefined) {
// 三个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}' AND ${fieldName2} = '${fieldValue2}' AND ${fieldName3}='${fieldValue3}'`;
}
if (fieldName1 !== undefined && fieldName2 !== undefined &&fieldName3==undefined) {
// 两个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}' AND ${fieldName2} = '${fieldValue2}'`;
}
if (fieldName1 !== undefined && fieldName2 == undefined && fieldName3==undefined ) {
// 一个检索条件
var sql = `SELECT * FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}'`;
// console.log(sql);
}
if (fieldName1 == undefined) {
var sql = `SELECT * FROM ${dbTable}`;
}
return new Promise((resolve, reject) => {
// 表格查询数据,执行查询的SQL语句
plus.sqlite.selectSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => { reject("错误查询") });
}
},
// 删除表里的数据 sql:'DELETE FROM dbTable WHERE lname = 'lvalue''
// 删除 DELETE FROM 、 dbTable 是表名、 WHERE 查找条件 lname,lvalue 是查询条件的列名和列值
deleteTableData(dbTable, fieldName1, fieldValue1, fieldName2, fieldValue2) {
if (dbTable !== undefined) {
if (lname == undefined) {
var sql = `DELETE FROM ${dbTable}`;
} else {
if (ww !== undefined) {
// 两个检索条件
var sql = `DELETE FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}' AND ${ww} = '${fieldValue2}'`;
} else {
// 一个检索条件
var sql = `DELETE FROM ${dbTable} WHERE ${fieldName1} = '${fieldValue1}'`;
}
}
return new Promise((resolve, reject) => {
// 删除表数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
} else {
return new Promise((resolve, reject) => { reject("错误删除") });
}
},
// 修改数据表里的数据 sql:"UPDATE dbTable SET 列名='列值',列名='列值' WHERE lname = 'lvalue'"
// 修改 UPDATE 、 dbTable 是表名, data: 是由要"列名1=值1,列名2=值2..."拼接的字符串, lname,lvalue 是查询条件的列名和列值
updateTableData(dbTable, data, fieldName, fieldValue) {
if (lname == undefined) {
var sql = `UPDATE ${dbTable} SET ${data}`;
} else {
var sql = `UPDATE ${dbTable} SET ${data} WHERE ${fieldName} = '${fieldValue}'`;
}
// WHERE 前面是要修改的列名、列值,后面是条件的列名、列值
return new Promise((resolve, reject) => {
// 修改表数据
plus.sqlite.executeSql({
name: this.dbName,
sql: sql,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
},
// 获取指定数据条数 sql:"SELECT * FROM dbTable ORDER BY 'id' DESC LIMIT 15 OFFSET 'num'"
// dbTable 表名, ORDER BY 代表排序默认正序, id 是排序的条件 DESC 代表倒序,从最后一条数据开始拿
// LIMIT 15 OFFSET '${num}',这句的意思是跳过 num 条拿 15 条数据, num 为跳过多少条数据是动态值
// 例 初始num设为0就从最后的数据开始拿15条下次不拿刚获取的数据所以可以让num为15这样就能一步一步的拿完所有的数据
pullSQL(dbTable, id, num) {
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: this.dbName,
sql: `SELECT * FROM ${dbTable} ORDER BY '${id}' DESC LIMIT 15 OFFSET '${num}'`,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
}

View File

@ -18,7 +18,7 @@
<button class="btn" @click="isOpenDatabase"></button>
<button class="btn" @click="createTable"></button>
<button class="btn" @click="dropTable"></button>
<button class="btn" @click="insertChatRow"></button>
<button class="btn" @click="insertChatRowTwo"></button>
<button class="btn" @click="executeSql1"></button>
</view>
</view>
@ -63,6 +63,7 @@
import SideBar from '@/components/sider-bar/slider-bar';
import HeadInfo from '@/components/head-info/head-info';
import sqlite from "../../common/sqlite.js"
import rSqlite from "../../common/rSqlite.js"
import {
mapActions
} from 'vuex'
@ -148,21 +149,48 @@
}
})
},
insertChatRow() {
// insertChatRow() {
// let data = {
// id: 1,
// fromId: '123',
// toId: '321',
// content: 'bihao1',
// flag: 1
// }
// data.id = Math.floor(Math.random() * 100);
// let dbTable = 'cesTable'
// // let sql = "insert into " + this.dbTable + " values('" + data.id + "','" + data.content +
// // "','" + data.fromId + "','" + data.toId + "'," + data.flag + ")";
// let sql = "insert into " + dbTable + " values('" + data.id + "','" +
// data.content + "','" + data.fromId + "','" + data.toId + "','" + data.flag + "')";
// this.executeSql(sql)
// },
insertChatRowTwo() {
let data = {
id: 1,
fromId: '123',
toId: '321',
toId: '321',
content: 'bihao1',
flag: 1
}
'1,123,411'
"'1','2','3'"
data.id = Math.floor(Math.random() * 100);
let dbTable = 'cesTable'
// let sql = "insert into " + this.dbTable + " values('" + data.id + "','" + data.content +
// "','" + data.fromId + "','" + data.toId + "'," + data.flag + ")";
let sql = "insert into " + dbTable + " values('" + data.id + "','" +
data.content + "','" + data.fromId + "','" + data.toId + "','" + data.flag + "')";
this.executeSql(sql)
let Arr = []
for (let key in data) {
Arr.push(`'${data[key]}'`);
}
let Str = Arr.join(',')
rSqlite.insertTableData(dbTable, Str).then((value) => {
// resolve
console.log(value); // Hello, World!
this.executeSql(value)
}).catch((error) => {
// reject
console.error(error);
});
},
//
executeSql(sql) {

View File

@ -164,11 +164,9 @@
});
},
executeSql(sql) {
<<<<<<< HEAD
sqlite.executeSqlCeshi(sql).then((value) => {
=======
Sqlite.executeSqlCeshi(sql).then((value) => {
>>>>>>> 99e78e950aa9ec6dccfe44174d8f77ac3239cf00
// resolve
this.sqlData = value
console.log(value); // Hello, World!