美文网首页
uniapp使用SQLite数据库(离线缓存)

uniapp使用SQLite数据库(离线缓存)

作者: 月下小酌_dbd5 | 来源:发表于2023-09-14 11:15 被阅读0次
新建文件 sqlite.js
/** 数据库是否打开--打开了就返回true,否则返回false
 * @param {Object} name 数据库名称
 * @param {Object} path 数据库地址,uniapp推荐以下划线为开头
 */
function isOpen(name, path) {
    return  plus.sqlite.isOpenDatabase({name,path})
}

/** 创建数据库或者打开
 * @param {Object} name  数据库名称
 * @param {Object} path  数据库地址,uniapp推荐以下划线为开头
 */
function openSqlite(name, path) {
    return new Promise((resolve, reject) => {
    //这plus.sqlite只在手机上运行
        plus.sqlite.openDatabase({
            name: name, //数据库名称
            path: path, //数据库地址,uniapp推荐以下划线为开头
            success(e) {
                resolve(e); //成功回调
            },
            fail(e) {
                reject(e); //失败回调
            }
        })
    })
}

//在该数据库里创建表格/添加数据
//数据库不能存对象,数组  需要转json后再存
/** 执行sql命令 对数据库  执行增删改等操作的SQL语句
 * @param {Object} name 数据库名称
 * @param {Object} sql sql命令
 */
function executeSql(name, sql) {
    return new Promise((resolve, reject) => {
        plus.sqlite.executeSql({
            name: name,
            sql: sql,
            success(e) {
                resolve(e);
            },
            fail(e) {
                reject(e);
            }
        })
    })
}

/** 执行查询的SQL语句
 * @param {Object} name 数据库名称
 * @param {Object} sql sql命令
 */
function selectSql(name, sql) {
    if (name !== undefined) {
        return new Promise((resolve, reject) => {
            plus.sqlite.selectSql({
                name: name,
                sql: sql,
                success(e) {
                    resolve(e);
                },
                fail(e) {
                    reject(e);
                }
            })
        })
    } else {
        return new Promise((resolve, reject) => {
            reject("错误查询")
        });
    }
}

/** 关闭数据库 
 * @param {Object} name 数据库名称
 */
function closeSQL(name) {
    return new Promise((resolve, reject) => {
        plus.sqlite.closeDatabase({
            name: name,
            success(e) {
                resolve(e);
            },
            fail(e) {
                reject(e);
            }
        })
    })
}
/**
 * 执行事务 
 * @param {Object} name 数据库名称
 * @param {Object} operationc begin(开始事务)、commit(提交)、rollback(回滚)
 */
function transactionDB(name,operationc) {
    return new Promise((resolve, reject) => {
        plus.sqlite.transaction({
            name: name,
            operation: operation,
            success: function(e){
                resolve(operation,'成功!')
            },
            fail: function(e){
                console.log('transaction failed: '+JSON.stringify(e));
                reject(operation,'失败!')
            }
        });
    })
}




export default {
    isOpen,
    openSqlite,
    selectSql,
    executeSql,
    closeSQL,
    transactionDB
}



  • 3.常用SQL语句
//新建表 account_tb
create table if not exists account_tb ( 'id' integer primary key autoincrement,'name' varchar(255), 'gender' varchar(255), 'deptId' varchar(255));
//插入数据
insert into account_tb values (null,'tyy','女');
//修改数据
update account_tb set name= '唐园园' where id=1;
//删除数据
delete from account_tb where id=1;
//数据查询并分页(根据id 排序,搜索条件 gender)
`select * from account_tb where gender='${gender}' order by 'id' asc limit ${pageSize*(pageNumber - 1)},${pageSize}`;
//模糊查询like % %
`select * from account_tb where name like ' %${gender}%' `;
//连表查询(left/right/inner join  左/右/内 连接)
`select * from account_tb inner join dept_tb as wd on account_tb.deptId = wd.id`;
//获取总数并去重 (distinct 去重)
select distinct count(*) as rowCount from account_tb;

相关文章

  • SQLite数据库

    SQLite数据库 1.数据库简介 1.1数据库的作用:"离线缓存数据" 1.2数据缓存策略 plist 归档 偏...

  • iOS开发数据库篇—SQLite简单介绍

    iOS开发数据库篇—SQLite简单介绍 一、离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数...

  • SQLite

    iOS开发数据库篇—SQLite简单介绍 一、离线缓存在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据...

  • 数据库之移动端SQLite3

    iOS开发数据库篇-SQLite简单介绍一、应用场景-离线缓存在项目开发中,通常都需要对数据进行离线缓存的处理,如...

  • uniapp sqlite数据库使用

    uniapp sqlite 数据库使用 当我们开发聊天软件时就会进行大量的数据存储,如果直接用uniapp自带的缓...

  • Swift-FMDB实战

    iOS中如果本地缓存数据库使用的SQLite,绝大数人都使用了FMDB,可以算是标配.如果自己对SQLite原生态...

  • app使用Sqlite作离线缓存

    效果 在common文件夹下面新建一个js文件,用于存放封装的基本方法 使用

  • App 安全方案

    一、本地数据库加密 目前安全风险:App本地使用了Sqlite进行了本地的数据缓存,和统计分析本地数据库缓存,其中...

  • SqlLite数据库

    一、数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。离线缓存一般都是把数据保存到...

  • iOS学习笔记16-数据库SQLite

    一、数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。离线缓存一般都是把数据保存到...

网友评论

      本文标题:uniapp使用SQLite数据库(离线缓存)

      本文链接:https://www.haomeiwen.com/subject/qnvpvdtx.html