大家好,又见面了,我是你们的朋友全栈君。
//我这个封装通过promise返回出去!!!
//我这个封装通过promise返回出去!!!
//创建数据库或者有该数据库就打开, 这一步必须要!
export function openSqlite(cb) {
//创建数据库或者打开
//这plus.sqlite只在手机上运行
plus.sqlite.openDatabase({
name: ‘wallet’, //数据库名称
path: ‘_doc/wallet.db’, //数据库地址,uniapp推荐以下划线为开头,这到底存在哪里去了,我也不清楚,哈哈
success(e) {
cb(e)
},
fail(e) {
cb(e)
}
})
}
//在该数据库里创建表格, 这一步也必须要!
//下面注释里说的都是说sql:’create table if not exists….这里
//userInfo是表格名,你也可以写其他的名,不能用数字作为表格名的开头!!!
//括号里是表格的结构,列,这里我写了四列,list,id,gender,avatar这四列
//list后面大写的英文是自动增加的意思,因为表格里的每一行必须有唯一标识
//这sql语句会数据库的应该都看的懂,我是前端菜鸡,所以详细说明以便跟我一样不懂sql的前端看
//”id” TEXT 意思是这一列放的值为字符串之类的,如果是想存数字之类的就改为INTEGER
//数据库不能存对象,数组
export function creatWalletSQL(cb) {
plus.sqlite.executeSql({
name: ‘wallet’,
//表格创建或者打开,后面为表格结构
sql: ‘create table if not exists wallet(“id” INTEGER PRIMARY KEY AUTOINCREMENT,”addr” TEXT,”prekey” TEXT,”pwd” TEXT)’,
success(e) {
cb(e);
},
fail(e) {
cb(e);
}
})
}
//向表格里添加数据
//根据表格的列来添加信息
//因为list列我设为自动增加,所以不用添加数据
//values里是传过来要存的值,我这里是动态的,单引号加双引号拼接
export function addWalletData(obj, cb) {
//判断有没有传参
var addr = obj.addr || null; //地址
var prekey = obj.prekey || null; //私钥
var pwd = obj.pwd || null; //密码
plus.sqlite.executeSql({
name: ‘wallet’,
sql: ‘insert into wallet(addr,prekey,pwd) values(“‘ + addr + ‘”,”‘ + prekey + ‘”,”‘ + pwd + ‘”)’,
success(e) {
cb(e);
},
fail(e) {
console.log(e)
cb(e);
}
})
}
//查询获取数据库里的数据
//根据传过来的值来获取信息,我这里写了可以有两个条件来获取,都是动态的
//第一个参数为表格名,aa,bb分别为列名和列的值 , cc,dd同前面
//传的参数按1,3,5来传,传一个,传三个,传五个参数,不能只传两个或者四个
export function queryWallet(name, arry, cb) {
if (arry.length == 0) {
var sql = ‘select * from ‘ + name + ”;
} else {
var sql = “select * from ” + name + ” where ” + arry[0] + “='” + arry[1] + “‘”;
}
plus.sqlite.selectSql({
name: ‘wallet’,
sql: sql,
success(e) {
cb(e);
},
fail(e) {
cb(e);
}
})
}
//删除数据库里的数据
//参数跟上面查询获取数据一样
//传的参数按1,3,5来传,传一个,传三个,传五个参数,不能只传两个或者四个
export function deleteWllet(name, arry, cb) {
var sql = ‘delete from ‘ + name + ‘ where ‘ + arry[0] + ‘=”‘ + arry[1] + ‘”‘;
plus.sqlite.executeSql({
name: ‘wallet’,
sql: sql,
success(e) {
cb(e);
},
fail(e) {
cb(e);
}
})
}
//修改数据表里的数据
//第一个参数为表格名,name为要修改的列名,cont为要修改为什么值,use,sel为搜索条件,分别是列名和列值
//传的参数按1,3,5来传,传一个,传三个,传五个参数,不能只传两个或者四个
export function modifyWallet(listName, newArry, ifArry,cb) {
//表格名,要修改地方的列名,修改后的内容,修改条件查询,列名,内容
var sql = ‘update ‘ + listName + ‘ set ‘ + newArry[0] + ‘=”‘ + newArry[1] + ‘” where ‘ + ifArry[0] + ‘=”‘ + ifArry[1] + ‘”‘;
//where前面的是要修改的,后面的是条件,选择哪个
plus.sqlite.executeSql({
name: ‘wallet’,
sql: sql,
success(e) {
cb(e);
},
fail(e) {
cb(e);
}
})
}
//关闭数据库
export function closeSQL(name) {
return new Promise((resolve, reject) => {
plus.sqlite.closeDatabase({
name: ‘wallet’,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
//监听数据库是否开启
export function isOpen(cb) {
var ss = ‘wallet’;
var qq = ‘_doc/wallet.db’;
//数据库打开了就返回true,否则返回false
var open = plus.sqlite.isOpenDatabase({
name: ss,
path: qq
})
cb(open)
}
//一次获取指定数据条数
//不想一次性把数据全拿过来就可以这样写
//id为表格名,desc代表倒序拿数据,正常是从第一条开始拿,倒序就从最后一条也是最新的一条数据开始拿
//limit 15 offset ‘+num+”,后面这是两个单引号,这句的意思是跳过多少条拿15条数据,num是动态值
//比如你刚开始给num设为0,那就从最后面的数据开始拿15条,你下次肯定不想再拿刚刚获取到的数据,所以可以让num为15,这样就能一步一步的拿完所有的数据
export function pullSQL(id, num) {
//id为表名,num为跳过多少条数据
//根据list来倒序拿数据,跳过num条拿取15条
return new Promise((resolve, reject) => {
plus.sqlite.selectSql({
name: ‘wallet’,
sql: ‘select * from ‘ + id + ‘ order by list desc limit 15 offset ‘ + num + ”,
success(e) {
resolve(e);
},
fail(e) {
reject(e);
}
})
})
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139672.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...