uniapp中使用sqlite模块

h5+ sqllite 教程地址

https://www.html5plus.org/doc/zh_cn/sqlite.html

// 创建数据库 | 打开数据库
function openSqllite() {
    
    
	return new Promise((resolve, reject) => {
    
    
		plus.sqlite.openDatabase({
    
    
			name: 'life', 					// 数据库名称
			path: '_doc/life.db',   // 数据库地址
			success(e) {
    
     resolve(e) },
			fail(e) {
    
     reject(e) }
		})
	})
}

// 关闭数据库
function closeSqllite() {
    
    
	return new Promise((resolve, reject) => {
    
    
		plus.sqlite.closeDatabase({
    
    
			name: 'life',
			success(e) {
    
     resolve() },
			fail(e) {
    
     reject() }
		})
	})
}

// 监听数据库是否开启 return type : Boolean
function isOpen(name, path) {
    
    
	return plus.sqlite.isOpenDatabase({
    
     name: 'life', path: '_doc/life.db' })
}

// 执行 sql 语句 for create table
/* 例子
	创建 table
	'create table if not exists userInfo
	(
		"index" INTEGER PRIMARY KEY AUTOINCREMENT,  自动增加
		"id" TEXT,  字符串
		"name" TEXT,
		"gender" TEXT,
		"avatar" TEXT
	)'
	
	添加数据
	'insert into userInfo (id,name,gender,avatar) values("'+id+'","'+name+'","'+gender+'","'+avatar+'")'
	'insert into userInfo (name, age) values ("demo1", "23")'

	删除数据
	'delete from '+name+' where '+sol+'="'+qq+'" and '+ww+'='+ee+''
	'delete from '+name+' where '+sol+'="'+qq+'"'
	
	修改数据
	UPDATE table_name SET field1=new-value1, field2=new-value2
	'update '+listName+' set '+name+'="'+cont+'" where '+use+'="'+sel+'"'
	'update '+listName+' set '+name+'="'+cont+'"'
*/
function executeSqlCode(sqlCode) {
    
    
	return new Promise((resolve, reject) => {
    
    
		plus.sqlite.executeSql({
    
    
			name: 'life',
			sql: sqlCode,   // sql 语句
			success(e) {
    
     resolve(e) },
			fail(e) {
    
     reject(e) }
		})
	})
}

// 查询数据
/* 例子
	'select * from '+name+' where '+aa+'='+bb+' and '+cc+'='+dd+''
	'select * from '+name+' where '+aa+'='+bb+''
	'select * from '+name+''
	
	// 高级查询
	'select * from '+id+' order by list desc limit 15 offset '+num+'',
*/
function selectFromTable(sqlCode) {
    
    
	return new Promise((resolve, reject) => {
    
    
		plus.sqlite.selectSql({
    
    
			name: 'life',    // 数据库名称
			sql: sqlCode,
			success(e) {
    
     resolve(e) },
			fail(e) {
    
     reject(e) }
		})
	})
}

export default {
    
    
	openSqllite,
	closeSqllite,
	isOpen,
	executeSqlCode,
	selectFromTable,
}

调用例子

<template>
	<view class="container">
		<button type="default" @click="openSqllite">开启数据库</button>
		<button type="default" @click="closeSqllite">关闭数据库</button>
		<button type="default" @click="createTable">创建table</button>
		<button type="default" @click="addData">添加数据</button>
		<button type="default" @click="getData">查询数据</button>
		
		状态:{
   
   { status }}
	</view>
</template>

<script>
	import sqlLite from '@/common/sqllite-utils.js';
	
	export default {
      
      
		data() {
      
      return {
      
      status: ''}},
		onLoad() {
      
      },
		methods: {
      
      
			// 开启数据库
			openSqllite() {
      
      
				if (sqlLite.isOpen()) {
      
      
					this.status = '开启成功!'
				} else {
      
      
					// 开启数据库
					sqlLite.openSqllite()
					.then((e) => this.status = '开启成功!')
					.catch((e) => this.status = '开启失败!')
				}
			},
			// 关闭数据库
			closeSqllite() {
      
      
				if (sqlLite.isOpen()) {
      
      
					// 关闭数据库
					sqlLite.closeSqllite()
					.then((e) => this.status = '关闭成功!')
					.catch((e) => this.status = '关闭失败!')
				} else {
      
      
					this.status = '关闭成功!'
				}
			},
			// 创建数据库 (index, name, age)
			createTable() {
      
      
				sqlLite.executeSqlCode(
					'create table if not exists userInfo ( "index" INTEGER PRIMARY KEY AUTOINCREMENT,"name" TEXT,"age" TEXT)'
				).then((e) => this.status = '创建成功!')
				.catch((e) => this.status = '创建失败!')
			},
			// 添加数据
			addData(){
      
      
				var name = "demo"
				var age = "23"
				sqlLite.executeSqlCode(
					'insert into userInfo (name, age) values ("'+name+'","'+age+'")'
				).then((e) => this.status = '添加成功!')
				.catch((e) => this.status = '添加失败!')
			},
			// 查询数据
			getData() {
      
      
				var tableName = 'userInfo'
				sqlLite.selectFromTable(
					'select * from '+tableName+''
				).then((date) => this.status = date)
				.catch((e) => this.status = '查询失败!')
			}
		}
	}
</script>

<style>
	.container {
      
      
		padding: 20px;
		font-size: 14px;
		line-height: 24px;
	}
</style>

Guess you like

Origin blog.csdn.net/weixin_40639095/article/details/119145702