ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

uni-app使用Sqlite

2022-06-24 12:02:20  阅读:314  来源: 互联网

标签:function Sqlite console name const app path uni log


 

 

 

step2:封装常用操作(未对事务进行封装 HTML5+ API Reference (html5plus.org)

// 

//打开数据库
function openDb(name,path) {
	return new Promise((resolve,reject)=>{
		plus.sqlite.openDatabase({
			name: name,    //这里是数据库的名称
			path: path,    //_doc是相对路径的应用私有文档目录
			success: function(e){
				console.log('数据库打开成功')
				resolve(e)
			},
			fail: function(e){
				console.log('数据库打开失败:' + JSON.stringify(e))
				reject(e)
			}
		})
	})
}

function isOpened(name,path) {
	return plus.sqlite.isOpenDatabase({name:name,path:path})
}

function closeDb(name) {
	return new Promise((resolve,reject)=>{
		plus.sqlite.closeDatabase()({
			name: name,    //这里是数据库的名称
			success: function(e){
				console.log('数据库打开成功')
				resolve(e)
			},
			fail: function(e){
				console.log('数据库打开失败')
				reject(e)
			}
		})
	})
}

function selectSql(name,sqlText) {
	return new Promise((resolve,reject)=>{
		plus.sqlite.selectSql({
			name: name,    //这里是数据库的名称
			sql: sqlText,
			success: function(e){
				console.log('selectSql查询成功:' + sqlText)
				resolve(e)
			},
			fail: function(e){
				console.log('selectSql查询失败:' + sqlText + "-异常信息:" + JSON.stringify(e))
				reject(e)
			}
		})
	})
}

function executeSql(name,sqlText) {
	return new Promise((resolve,reject)=>{
		plus.sqlite.executeSql({
			name: name,    //这里是数据库的名称
			sql: sqlText,
			success: function(e){
				console.log('数据库打开成功')
				resolve(e)
			},
			fail: function(e){
				console.log('executeSql执行失败:' + sqlText + '-异常信息:' + JSON.stringify(e))
				reject(e)
			}
		})
	})
}

export {
	openDb,
	isOpened,
	closeDb,
	selectSql,
	executeSql
}

 使用举例:

(1)导入函数

import { isOpened,openDb, closeDb, selectSql,executeSql } from '@/utils/sqliteUtil';

  

(2)使用举例(注意这个路径-H5+路径规范和app路径相关只是)

onLoad() {
		const createTableSql = 'CREATE TABLE Test (TestID INT (100) PRIMARY KEY, TestName VARCHAR (200) )'
		const name = 'stock';
		const path = '_doc/MyStock.db';
		openDb(name, path).then(() => {
			const sql = 'select TestID,TestName from Test'
			executeSql(name, createTableSql).then(result => {
				console.log('executeSql',result)
			})
		})
		
	},
	methods: {
		
		sqlTest() {
			const name = 'stock';
			const path = '_doc/MyStock.db';
			
			if(isOpened(name,path)){
				const insertSql = 'INSERT INTO Test (TestID,TestName) VALUES (2, \'张三\');'
				executeSql(name,insertSql).then(result=>{
					const sql = 'select TestID,TestName from Test';
					selectSql(name, sql).then(result => {
						console.log(result);
					})
				})
				
				
			} else {
				openDb(name, path).then(() => {
					const sql = 'select TestID,TestName from Test';
					selectSql(name, sql).then(result => {
						console.log(result);
					});
				});
			}
			
		}
	}

  

标签:function,Sqlite,console,name,const,app,path,uni,log
来源: https://www.cnblogs.com/volts0302/p/16408285.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有