uni-app使用Sqlite

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);
});
});
}
}
}
uni-app使用Sqlite的更多相关文章
- uni app中使用自定义图标库
项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...
- uni app 零基础小白到项目实战-1
uni-app是一个使用vue.js开发跨平台应用的前端框架. 开发者通过编写vue.js代码,uni-app将其编译到Ios,android,微信小程序等多个平台,保证其正确并达到优秀体验. Uni ...
- uni app以及小程序 --环境搭建以及编辑器
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 根据以上网页下载自己电脑相应的版本的微信开发者工具(目录 ...
- uni app canvas 不生效
canvas 创建canvas绘图上下文. <canvas style="width: 300px; height: 200px;" canvas-id="firs ...
- uni app 零基础小白到项目实战2
<template> <scroll-view v-for="(card, index) in list" :key="index"> ...
- uni app 零基础小白到项目实战
$emit 子组件传给父组件 $ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http' const now = Date.now ...
- uni app中关于图片的分包加载
因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...
- 数据火器库八卦系列之瑞士军刀随APP携带的SQLite
来源:云数据库技术 数据库打工仔喃喃自语的八卦历史 1. 为导弹巡洋舰设计,用在手机上的数据库 2. Small and Simple, and Better 3. 如何看出是自己的娃:产品定位,特点 ...
- 5G到来,App的未来,是JavaScript,Flutter还是Native ?
Native App React Native(RN)发布于2015年,也是使用JavaScript语言进行跨平台APP的开发.与H5开发不同的是,它使用JS桥接技术在运行时编译成各个平台的Nativ ...
- 使用嵌入式关系型SQLite数据库存储数据
除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...
随机推荐
- 1247. 交换字符使得字符串相同 (Medium)
问题描述 1247. 交换字符使得字符串相同 (Medium) 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过 ...
- JS学习-Canvas-Transformations变换
Canvas -Transformations变换 save() 保存画布(canvas)的所有状态 restore() 是 Canvas 2D API 通过在绘图状态栈中弹出顶端的状态,将 canv ...
- java功能-发送http请求
一.发送json public void test() throws IOException { //参数封装--------------------------------------------- ...
- Oracle 用户创建,权限授予
https://blog.csdn.net/zhao05164313/article/details/124172838 grant create any view to crjp; 被授予权限的用户 ...
- 【BOOK】数据存储—文件存储(TXT、JSON、CSV)
数据存储 文本文件-TXT.JSON.CSV 关系型数据库-MySQL.SQLite.Oracle.SQL Server.DB2 非关系型数据库-MongoDB.Redis 文件打开 open() ...
- libevent学习之入门--[02]从hello-world开始
系列文章回顾 libevent学习之入门--[01]概述与安装 上一节介绍了libevent的下载和编译,从这节开始,我会从我学习的角度逐步探索libevent的源码,慢慢揭开它的神秘面纱. 面对几十 ...
- python+selenium实现自动识别验证码并登录
最近学习python+selenium实现网站的自动登录,但是遇到需要输入验证码的问题,经过查询百度收获了几种破解验证码的方式. 方式一)从万能的网友那收获了一个小众但非常实用的第3方库ddddocr ...
- word在指定页面设置页码
需求:比如,毕业论文前面几页要求罗马数字(摘要-目录)(这里设置页码格式即可完成),后面全是阿拉伯数字(这里比较难搞,以下方法是解决这里的) 方法: 1. 光标移到指定页面的第一个字符所在的位置前 2 ...
- uniapp+vue3+ts
1. 创建vue3的默认uniapp模板 2. npm init 创建package.json
- 2023.1.21 app后端pyinstaller启动
1.打包后会在dist文件夹中暂时生成一个新的文件目录,点击app.exe后也是在这个暂时的文件目录下读取文件的,所以需要以下代码拷贝添加原始项目中的文件 pyinstaller -D app.py ...