uniappsqlite数据库使用

更新时间:2023-07-13 13:04:19 阅读: 评论:0

uniappsqlite数据库使⽤
uniapp sqlite 数据库使⽤
当我们开发聊天软件时就会进⾏⼤量的数据存储,如果直接⽤uniapp⾃带的缓存就不⾏了。
最近我们开发的⼀个项⽬,我负责聊天通信这⼀块,所以把我的经验分享⼀下给⼤家,当然我这个仅供参考,因为我也第⼀次做,哈哈哈,不废话了,直接上代码。
我把sqlite的使⽤⽅法封装在js⽂件⾥了,你们也可以根据⾃⼰的需求来封装
plus.sqlite要在⼿机上才能运⾏,建议真机测试,浏览器上会报错
先在manifest.json⾥的App模块权限配置⾥勾选SQLite(数据库)
先在manifest.json⾥的App模块权限配置⾥勾选SQLite(数据库)
先在manifest.json⾥的App模块权限配置⾥勾选SQLite(数据库)
//我这个封装通过promi返回出去
//我这个封装通过promi返回出去
//创建数据库或者有该数据库就打开,    这⼀步必须要!
function openSqlite(){
//创建数据库或者打开
//这plus.sqlite只在⼿机上运⾏
return new Promi((resolve,reject)=>{
plus.sqlite.openDataba({
name:'pop',//数据库名称
path:'_doc/pop.db',//数据库地址,uniapp推荐以下划线为开头,这到底存在哪⾥去了,我也不清楚,哈哈
success(e){
resolve(e);//成功回调
},
fail(e){
reject(e);//失败回调
}
})
})
}
//在该数据库⾥创建表格,这⼀步也必须要!
//下⾯注释⾥说的都是说sql:'create table if 这⾥
//urInfo是表格名,你也可以写其他的名,不能⽤数字作为表格名的开头
//括号⾥是表格的结构,列,这⾥我写了四列,list,id,gender,avatar这四列
//list后⾯⼤写的英⽂是⾃动增加的意思,因为表格⾥的每⼀⾏必须有唯⼀标识
/
/这sql语句会数据库的应该都看的懂,我是前端菜鸡,所以详细说明以便跟我⼀样不懂sql的前端看
//"id" TEXT  意思是这⼀列放的值为字符串之类的,如果是想存数字之类的就改为INTEGER
//数据库不能存对象,数组
function urInfoSQL(){
英文版qqreturn new Promi((resolve,reject)=>{
//创建表格在executeSql⽅法⾥写
uteSql({
name:'pop',
//表格创建或者打开,后⾯为表格结构
sql:'create table if not exists urInfo("list" INTEGER PRIMARY KEY AUTOINCREMENT,"id" TEXT,"name" TEXT,"gender" TEXT,"avatar" TEXT)', success(e){
resolve(e);
},
fail(e){
reject(e);
}
})
})
}
//向表格⾥添加数据
//根据表格的列来添加信息
//因为list列我设为⾃动增加,所以不⽤添加数据
//values⾥是传过来要存的值,我这⾥是动态的,单引号加双引号拼接
桂花糕的制作方法
function addUrInformation(obj){
function addUrInformation(obj){
//判断有没有传参
if(obj !== undefined){
//判断传的参是否有值
var b =(JSON.stringify(obj)=="{}");
if(!b){
//obj传来的参数对象
var id = obj.id ||null;//id
var name = obj.name ||null;//名称
var gender = der ||null;//性别
迪士尼漫威var avatar = obj.avatar ||null;//头像
return new Promi((resolve,reject)=>{
uteSql({
name:'pop',
sql:'inrt into urInfo(id,name,gender,avatar) values("'+id+'","'+name+'","'+gender+'","'+avatar+'")', success(e){
resolve(e);
},
fail(e){
reject(e);
}
})
})
}el{
return new Promi((resolve,reject)=>{reject("错误添加")})
}
}el{
return new Promi((resolve,reject)=>{reject("错误添加")})
}
}
//查询获取数据库⾥的数据
//根据传过来的值来获取信息,我这⾥写了可以有两个条件来获取,都是动态的
//第⼀个参数为表格名,aa,bb分别为列名和列的值, cc,dd同前⾯
/
/传的参数按1,3,5来传,传⼀个,传三个,传五个参数,不能只传两个或者四个
function lectInformationType(name,aa,bb,cc,dd){
if(name !== undefined){
//第⼀个是表单名称,后两个参数是列表名,⽤来检索什么是沟通
if(aa !== undefined && cc !== undefined){
//两个检索条件
var sql ='lect * from '+name+' where '+aa+'='+bb+' and '+cc+'='+dd+'';
}
if(aa !== undefined && cc == undefined){
//⼀个检索条件
var sql ='lect * from '+name+' where '+aa+'='+bb+'';
}
if(aa == undefined){
var sql ='lect * from '+name+'';
}
return new Promi((resolve,reject)=>{
plus.sqlite.lectSql({
name:'pop',
3月8sql:sql,
success(e){
resolve(e);
},
fail(e){
reject(e);
}
})
})
}el{
return new Promi((resolve,reject)=>{reject("错误查询")});
}
}
//删除数据库⾥的数据
//参数跟上⾯查询获取数据⼀样
/
/传的参数按1,3,5来传,传⼀个,传三个,传五个参数,不能只传两个或者四个
function deleteInformationType(name,sol,qq,ww,ee){
if(name !== undefined && sol !== undefined){
//listId为表名,后⾯两个是列表名,检索⽤的
if(ww !== undefined){
//两个检索条件
var sql ='delete from '+name+' where '+sol+'="'+qq+'" and '+ww+'='+ee+'';
}el{
//⼀个检索条件
var sql ='delete from '+name+' where '+sol+'="'+qq+'"';
}
return new Promi((resolve,reject)=>{
uteSql({
name:'pop',
sql:sql,
success(e){
resolve(e);
},
fail(e){
reject(e);
}
})
})
}el{
return new Promi((resolve,reject)=>{reject("错误删除")});
}
}电脑连手机热点
//修改数据表⾥的数据
//第⼀个参数为表格名,name为要修改的列名,cont为要修改为什么值,u,l为搜索条件,分别是列名和列值//传的参数按1,3,5来传,传⼀个,传三个,传五个参数,不能只传两个或者四个
function modifyInformation(listName,name,cont,u,l){
//表格名,要修改地⽅的列名,修改后的内容,修改条件查询,列名,内容
var sql;
if(u == undefined){
sql ='update '+listName+' t '+name+'="'+cont+'"';
}el{
sql ='update '+listName+' t '+name+'="'+cont+'" where '+u+'="'+l+'"';影子
}
//where前⾯的是要修改的,后⾯的是条件,选择哪个
return new Promi((resolve,reject)=>{
uteSql({
name:'pop',
sql:sql,
success(e){
resolve(e);
},
fail(e){
reject(e);
}
})
})
}
//关闭数据库
function cloSQL(name){
return new Promi((resolve,reject)=>{
plus.sqlite.cloDataba({
name:'pop',
我要网success(e){
resolve(e);
},
fail(e){
fail(e){
reject(e);
}
})
})
}
/
/监听数据库是否开启
function isOpen(name,path){
var ss = name ||'pop';
var qq = path ||'_doc/pop.db';
//数据库打开了就返回true,否则返回fal
var open = plus.sqlite.isOpenDataba({
name:ss,
path:qq
})
return open;
}
/
/⼀次获取指定数据条数
//不想⼀次性把数据全拿过来就可以这样写
//id为表格名,desc代表倒序拿数据,正常是从第⼀条开始拿,倒序就从最后⼀条也是最新的⼀条数据开始拿
//limit 15 offt '+num+'',后⾯这是两个单引号,这句的意思是跳过多少条拿15条数据,num是动态值
//⽐如你刚开始给num设为0,那就从最后⾯的数据开始拿15条,你下次肯定不想再拿刚刚获取到的数据,所以可以让num为15,这样就能⼀步⼀步的拿完所有的数据
function pullSQL(id,num){
//id为表名,num为跳过多少条数据
//根据list来倒序拿数据,跳过num条拿取15条
return new Promi((resolve,reject)=>{
plus.sqlite.lectSql({
name:'pop',
sql:'lect * from '+id+' order by list desc limit 15 offt '+num+'',
success(e){
resolve(e);
},
fail(e){
reject(e);
}
})
})
}
/
/把这些⽅法导出去
export{
openSqlite,
urInfoSQL,
addUrInformation,
lectInformationType,
deleteInformationType,
pullSQL,
isOpen,
cloSQL,
modifyInformation
}
最后想在哪个页⾯⽤就⽤import {} from 'xxxxx’引⼊这个⽂件就⾏,{}放要使⽤的⽅法,不使⽤的可以不⽤放进去,注意!!{}⾥的⽅法名要⼀⼀对应,我这封装返回的是promi对象

本文发布于:2023-07-13 13:04:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1094341.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   数据   表格   条件   参数   获取   返回
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图