uniapp之使用sqlite模块

简介: uniapp之使用sqlite模块

h5+ sqllite


// 创建数据库 | 打开数据库
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>
目录
相关文章
|
2月前
|
移动开发 前端开发 JavaScript
uniapp中IO模块(管理本地文件系统)的常用功能封装
uniapp中IO模块(管理本地文件系统)的常用功能封装
173 1
|
2月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的周边游平台个人管理模块的详细设计和实现
基于SpringBoot+Vue+uniapp的周边游平台个人管理模块的详细设计和实现
|
2月前
|
SQL 开发框架 数据库连接
uniapp中sqlite数据库常用操作的简单封装
uniapp中sqlite数据库常用操作的简单封装
|
2月前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
uniapp公共新闻模块components案例
本文使用uniapp的公共新闻模块讲解components案例。
238 0
uniapp公共新闻模块components案例
|
测试技术 C++ 数据库管理
SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块
 近期刚使用SQLite,主要引用的是System.Data.SQLite.dll这个dll,在部署到测试环境时报无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
4284 0
|
SQL 数据库 Python
使用sqlite3 模块操作sqlite3数据库
Python内置了sqlite3模块,可以操作流行的嵌入式数据库sqlite3。如果看了我前面的使用 pymysql 操作MySQL数据库这篇文章就更简单了。
709 0