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的更多相关文章

  1. uni app中使用自定义图标库

    项目中难免会用到自定义图标,那在uni app中应该怎么使用呢? 首先, 将图标目录放在static资源目录下: 在main.js中引入就可以全局使用了 import '@/static/icon-o ...

  2. uni app 零基础小白到项目实战-1

    uni-app是一个使用vue.js开发跨平台应用的前端框架. 开发者通过编写vue.js代码,uni-app将其编译到Ios,android,微信小程序等多个平台,保证其正确并达到优秀体验. Uni ...

  3. uni app以及小程序 --环境搭建以及编辑器

    https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 根据以上网页下载自己电脑相应的版本的微信开发者工具(目录 ...

  4. uni app canvas 不生效

    canvas 创建canvas绘图上下文. <canvas style="width: 300px; height: 200px;" canvas-id="firs ...

  5. uni app 零基础小白到项目实战2

    <template> <scroll-view v-for="(card, index) in list" :key="index"> ...

  6. uni app 零基础小白到项目实战

    $emit 子组件传给父组件 $ref 父组件操作子组件 公用模板 uni-app全局变量的几种实现方法 const websiteUrl = 'http' const now = Date.now ...

  7. uni app中关于图片的分包加载

    因为在项目中使用了大量的静态资源图片,使得主包体积过大, 而把这些图片全部放到服务器又有点麻烦,就想能不能把图片也分包,但是直接放在分包下的话导致图片资源找不到了, 在社区中看到大佬分享的十分有用,特 ...

  8. 数据火器库八卦系列之瑞士军刀随APP携带的SQLite

    来源:云数据库技术 数据库打工仔喃喃自语的八卦历史 1. 为导弹巡洋舰设计,用在手机上的数据库 2. Small and Simple, and Better 3. 如何看出是自己的娃:产品定位,特点 ...

  9. 5G到来,App的未来,是JavaScript,Flutter还是Native ?

    Native App React Native(RN)发布于2015年,也是使用JavaScript语言进行跨平台APP的开发.与H5开发不同的是,它使用JS桥接技术在运行时编译成各个平台的Nativ ...

  10. 使用嵌入式关系型SQLite数据库存储数据

    除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1.SQLite3支持 ...

随机推荐

  1. WDA学习(23):UI Element:Radio Button Group & CheckBox Group使用

    1.16 UI Element:Radio Button & CheckBox使用 本实例测试Radio Button Group,CheckBox Group等的使用. 注:Dropdown ...

  2. Spring 装配基础类型

    1 //以String类型为例 2 <bean id="exemptSecretUser" class="java.lang.String"> 3 ...

  3. 065_VFPage中CallBack回调函数的解释

    关于JS 的回调函数解释: https://blog.csdn.net/baidu_32262373/article/details/54969696 https://www.cnblogs.com/ ...

  4. SSIS Package Version

    当 SSIS 首次出现时,有大量关于所有问题的笑话和帖子,以及每个人如何认为 DTS 更好,他们真的必须转换吗?多年来,我开始欣赏 SSIS.它是一个非常强大和有用的工具,可以做一些了不起的事情.当然 ...

  5. linux格式化文件命令

    一些文件被windows打开后代码格式会被改变,使用一下命令来转换 sed -i 's/\r//' filename

  6. Epoll的使用例子

    本篇文章在上一篇的基础上,使用 epoll  实现了一个事件监听和回调处理的模块.如何编写一个使用该模块的例子呢? 监测什么类型的fd,监测什么类型的事件,监测到事件以后需要做什么?后来可以看看如何将 ...

  7. Java中String,JSON对象,java实体类(Bean)之间的相互转换

    FastJson对于json格式字符串的解析主要用到了一下三个类: (1)JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. (2)JSONObje ...

  8. go的相关包time、os、rand、fmt

    time 1.time包 2.time.Time类型, 用来表示时间 3.取当前时间, now := time.Now() 4.time.Now().Day(),time.Now().Minute() ...

  9. Debug --> CICflowmeter配置链接

    先存一下,今天晚上尝试. https://blog.csdn.net/weixin_52111404/article/details/127908558

  10. Python模块——os模块详解