uni-app+sqlite常用方法

序言

该篇文章对于sqlite数据库常用的功能进行讲解,欢迎大家指出问题和发表建议!

模块配置

首先打开项目,在项目的根目录找到 manifest.json 文件,选中坐标的“APP模块配置”,找到 “SQLite(数据库)”选项,在前面打勾,文件会自动保存。配置完成之后便可以使用了。
在这里插入图片描述

打开数据库(openDatabase)

在用sqlite数据库时,需要先判断数据库是否打开,未打开的数据库是不能被访问的,因此在使用sqlite数据库时需要判断是否打开。数据库用完之后需要关闭。
未找到该数据库时,会自动创建。

//判断数据库是否打开
getSqLite() {
	let that = this;
	//检查数据库是否打开 
	var open = that.isOpen("GY_M_PMV3", "_doc/GYPMV3.db");
	if (open) {
		that.getInfo();
	} else {
		//开启数据库 
	        openSqlite("GY_M_PMV3", '_doc/GYPMV3.db').then(res => {
			that.getInfo();
		})
	}
},
isOpen(name, path) {
	var ss = name || 'GY_M_PMV3';
	var qq = path || 'GYPMV3.db';
	//数据库打开了就返回true,否则返回false
	var open = plus.sqlite.isOpenDatabase({
		name: ss,
		path: qq
	})
	return open;
},

打开数据库方法
name为sqlite数据库名,path为数据库保存的相对地址,二者可以自己命名。
保存好的数据库地址在该APP包名文件下。

function openSqlite(name, path) {
	//创建数据库或者打开
	//这plus.sqlite只在手机上运行
	return new Promise((resolve, reject) => {
		plus.sqlite.openDatabase({
			name: name, //数据库名称
			path: path, //数据库地址,uniapp推荐以下划线为开头
			success(e) {
				resolve(e); //成功回调
			},
			fail(e) {
				reject(e); //失败回调
			}
		})
	})
}

创建表(executeSql)

创建表时需要库名,表名和表字段名和字段类型,分别传入创建方法中。(以用户表为例)
ID作为主键,自增。
若该表不存在,则新建,否则将忽略。

executeSql('GY_M_PMV3',
			'create table if not exists m_UserInfo("ID" INTEGER PRIMARY KEY AUTOINCREMENT,\
			"UserName" nvarchar(50),"LoginName" nvarchar(50),\
			"PWD" nvarchar(50), "PWDMD5" nvarchar(50),"TEL" nvarchar(50),"StatusFlag" INT)'
).then(res => {})
//在该数据库里创建表格
//数据库不能存对象,数组
function createOrFindSQL(name, sql) {
	return new Promise((resolve, reject) => {
		//创建表格在executeSql方法里写
		plus.sqlite.executeSql({
			name: name,
			sql: sql,
			success(e) {
				resolve(e);
			},
			fail(e) {
				reject(e);
			}
		})
	})
}

添加

ID主键自增直接赋值null即可,各个参数用隔开,注意数据的类型。

executeSql("GY_M_PMV3",
	"insert into m_UserInfo values(" + null +
	",'" + UserName + "','" +LoginName + "','" +
	PWD + "','" + PWDMD5 + "','" + TEL + "','" +
	StatusFlag + "')").then(Ures => {
	})

注意:该方法同样适用于删除和修改,只需要将传入的sql语句修改为对应的即可。

查询(selectSql)

根据登录名查询该用户的信息。(增删改查和SQL Server中的SQL语句相同。)

selectInformationType("GY_M_PMV3",
		'select * from m_UserInfo where LoginName= "' + _this.name +'" '
).then(selRes => {})
function selectInformationType(name, sql) {
	if (name !== undefined) {
		return new Promise((resolve, reject) => {
			plus.sqlite.selectSql({
				name: name,
				sql: sql,
				success(e) {
					resolve(e);
				},
				fail(e) {
					reject(e);
				}
			})
		})
	} else {
		return new Promise((resolve, reject) => {
			reject("错误查询")
		});
	}
}

关闭数据库(closeDatabase)

数据库用完之后需要关闭,避免资源浪费。关闭数据库的方法如下,使用时和打开一样,关闭时只需要传入数据库名即可。若APP后台时需要使用到数据库,则不要关闭。

function closeSQL(name) {
	return new Promise((resolve, reject) => {
		plus.sqlite.closeDatabase({
			name: name,
			success(e) {
				resolve(e);
			},
			fail(e) {
				reject(e);
			}
		})
	})
}
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Swn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值