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>