黄南州wap网站建设公司代理ip大全

news/2025/10/7 11:21:16/文章来源:
黄南州wap网站建设公司,代理ip大全,淘宝电子网站建设论文,元旦ppt模板免费下载数据库请求接口封装 uniapp中提供了plus.sqlite接口#xff0c;在这里我们对常用的数据库请求操作进行了二次封装 这里的dbName、dbPath、recordsTable 可以根据你的需求自己命名 module.exports {/** * type {String} 数据库名称*/dbName: salary,/*** 数据库地址* type {…数据库请求接口封装 uniapp中提供了plus.sqlite接口在这里我们对常用的数据库请求操作进行了二次封装 这里的dbName、dbPath、recordsTable 可以根据你的需求自己命名 module.exports {/** * type {String} 数据库名称*/dbName: salary,/*** 数据库地址* type {String} 推荐以下划线为开头 _doc/xxx.db* description 开发环境中数据库所在地址文件管理/Android/data/io.dcloud.HBuilder/downloads/salary.db* description 打包安装后数据库所在地址文件管理/Android/data/uni.UNI4312312(以UNI开头接数字)/downloads/salary.db*/dbPath: _downloads/salary.db,/*** 加班记录表名* description* time DATE PRIMARY KEY,money INTEGER,notes text,info text*/recordsTable: records,/*** 判断数据库是否打开* returns {Boolean} 打开为 true未打开为 false*/isOpen() {var open plus.sqlite.isOpenDatabase({name: this.dbName,path: this.dbPath})return open;},/*** 打开数据库没有则创建*/openSqlite() {return new Promise((resolve, reject) {plus.sqlite.openDatabase({name: this.dbName,path: this.dbPath,success(e) {resolve(e);},fail(e) {reject(e);}})})},/*** 关闭数据库*/closeSqlite() {return new Promise((resolve, reject) {plus.sqlite.closeDatabase({name: this.dbName,success(e) {resolve(e);},fail(e) {reject(e);}})})},/*** 数据库建表 sql:CREATE TABLE IF NOT EXISTS dbTable(id varchar(50),name TEXT) * 创建 CREATE TABLE IF NOT EXISTS 、 dbTable 是表名不能用数字开头、括号里是表格的表头* param {Object} dbTable 表名* param {Object} data 表列* example 创建表 DB.createTable(表名, 表的列)* let sql date DATE PRIMARY KEY,money INTEGER,notes text,info text;* await DB.createTable(records, sql);*/createTable(dbTable, data) {return new Promise((resolve, reject) {// executeSql: 执行增删改等操作的SQL语句plus.sqlite.executeSql({name: this.dbName,sql: CREATE TABLE IF NOT EXISTS ${dbTable}(${data}),success(e) {resolve(e);},fail(e) {reject(e);}})})},/*** 数据库删表* param {Object} dbTable 表名* description 数据库删表 sql:DROP TABLE dbTable*/dropTable(dbTable) {return new Promise((resolve, reject) {plus.sqlite.executeSql({name: this.dbName,sql: DROP TABLE ${dbTable},success(e) {resolve(e);},fail(e) {reject(e);}})})},// 向表格里添加数据 sql:INSERT INTO dbTable VALUES(x,x,x) 对应新增// 或者 sql:INSERT INTO dbTable (x,x,x) VALUES(x,x,x) 具体新增/*** 向表格里添加数据* param {String} dbTable 表名* param {String} data 列值* param {String} condition 表头列名* example * let sql ${item.money},${item.notes},${item.time};* let condition money,notes,time;* await DB.insertTableData(records, sql, condition);*/insertTableData(dbTable, data, condition) {// 判断有没有传参if (dbTable ! undefined data ! undefined) {// 判断传的参是否有值var bol (JSON.stringify(data) {});if (!bol) {if (condition undefined) {var sql INSERT INTO ${dbTable} VALUES(${data});} else {var sql INSERT INTO ${dbTable} (${condition}) VALUES(${data});}// console.log(sql);return new Promise((resolve, reject) {// 表格添加数据plus.sqlite.executeSql({name: this.dbName,sql: sql,success(e) {resolve(e);},fail(e) {reject(e);}})})} else {return new Promise((resolve, reject) {reject(错误添加)})}} else {return new Promise((resolve, reject) {reject(错误添加)})}},/*** 根据条件向表格里添加数据 有数据更新、无数据插入* (建表时需要设置主键) 例如 --- roomid varchar(50) PRIMARY KEY* param {String} dbTable 表名* param {String} data 列值* param {String} condition 表头列名* example * let sql ${item.money},${item.notes},${item.time};* let condition money,notes,time;* await DB.insertTableData(records, sql, condition);*/insertOrReplaceData(dbTable, data, condition) {// 判断有没有传参if (dbTable ! undefined data ! undefined) {if (condition undefined) {var sql INSERT OR REPLACE INTO ${dbTable} VALUES(${data});} else {var sql INSERT OR REPLACE INTO ${dbTable} (${condition}) VALUES(${data});}// console.log(sql);return new Promise((resolve, reject) {// 表格添加数据plus.sqlite.executeSql({name: this.dbName,sql: sql,success(e) {resolve(e);},fail(e) {reject(e);}})})} else {return new Promise((resolve, reject) {reject(错误添加)})}},/*** 查询获取数据库里的数据 sql:SELECT * FROM dbTable WHERE lname lvalue* param {String} dbTable 表名* param {String} [condition ] 查找条件* example* const searchCondition WHERE date ${day}* await DB.selectTableData(表名, searchCondition);*/selectTableData(dbTable, condition ) {if (dbTable ! undefined) {var sql SELECT * FROM ${dbTable} ${condition};return new Promise((resolve, reject) {// 表格查询数据 执行查询的SQL语句plus.sqlite.selectSql({name: this.dbName,sql: sql,success(e) {resolve(e);},fail(e) {reject(e);}})})} else {return new Promise((resolve, reject) {reject(错误查询)});}},/*** 删除表里的数据 sql:DELETE FROM dbTable WHERE lname lvalue* param {String} dbTable 表名* param {String} [condition ] 查找条件* example* const searchCondition WHERE date ${day}* await DB.deleteTableData(表名, searchCondition);*/deleteTableData(dbTable, condition ) {if (dbTable ! undefined) {var sql DELETE FROM ${dbTable} ${condition};return new Promise((resolve, reject) {// 删除表数据plus.sqlite.executeSql({name: this.dbName,sql: sql,success(e) {resolve(e);},fail(e) {reject(e);}})})} else {return new Promise((resolve, reject) {reject(错误删除)});}},// 修改数据表里的数据 sql:UPDATE dbTable SET 列名 列值,列名 列值 WHERE lname lvalue// 修改 UPDATE 、 dbTable 是表名, data: 要修改的列名修改后列值, lname,lvalue 是查询条件的列名和列值updateTableData(dbTable, data, lname, lvalue) {if (lname undefined) {var sql UPDATE ${dbTable} SET ${data};} else {var sql UPDATE ${dbTable} SET ${data} WHERE ${lname} ${lvalue};}// WHERE 前面是要修改的列名、列值后面是条件的列名、列值return new Promise((resolve, reject) {// 修改表数据plus.sqlite.executeSql({name: this.dbName,sql: sql,success(e) {resolve(e);},fail(e) {reject(e);}})})},// 获取指定数据条数 sql:SELECT * FROM dbTable ORDER BY id DESC LIMIT 15 OFFSET num// dbTable 表名, ORDER BY 代表排序默认正序, id 是排序的条件 DESC 代表倒序从最后一条数据开始拿// LIMIT 15 OFFSET ${num},这句的意思是跳过 num 条拿 15 条数据, num 为跳过多少条数据是动态值// 例 初始num设为0就从最后的数据开始拿15条下次不拿刚获取的数据所以可以让num为15这样就能一步一步的拿完所有的数据pullSQL(dbTable, id, num) {return new Promise((resolve, reject) {plus.sqlite.selectSql({name: this.dbName,sql: SELECT * FROM ${dbTable} ORDER BY ${id} DESC LIMIT 15 OFFSET ${num},success(e) {resolve(e);},fail(e) {reject(e);}})})} }使用案例 这里给了几个简单的案例一通百通 import DB from /api/sqlite;/**添加或者更新加班费主键是日期* param {Object} submitParam 单个日期的加班信息* param {Number} submitParam.money 加班费* param {String} submitParam.notes 备注* param {Date} submitParam.date 加班日期* param {String} submitParam.info 日历日期下面显示内容*/ async function recordSalary(submitParam) {try {// 新增 DB.insertTableData(表名, 对应表头列的数据)let sql ${submitParam.money},${submitParam.notes},${submitParam.date},${submitParam.info};let condition money,notes,date,info;await DB.insertOrReplaceData(DB.recordsTable, sql, condition);return 添加/更新加班费成功;} catch (e) {throw e;} }/**通过年月查询加班费记录* param {String} month 日期* example queryRecordsByMonth(2023-12)*/ async function queryRecordsByMonth(month) {try {const searchCondition WHERE strftime(%Y-%m, date) ${month}const records await DB.selectTableData(DB.recordsTable, searchCondition);return records;} catch (e) {throw e;} }/**通过具体日期查询加班费记录* param {String} day 日期* example queryRecordsByMonth(2023-12-20)*/ async function queryRecordsByDay(day) {try {const searchCondition WHERE date ${day}const records await DB.selectTableData(DB.recordsTable, searchCondition);return records;} catch (e) {throw e;} }/**通过具体日期删除该天的加班记录* param {Object} day 日期* example deleteRecordByDate(2023-12-20)*/ async function deleteRecordByDate(day) {try {const searchCondition WHERE date ${day}const result await DB.deleteTableData(DB.recordsTable, searchCondition);return 删除记录成功;} catch (e) {throw e;} }export default {recordSalary,queryRecordsByMonth,queryRecordsByDay,deleteRecordByDate }查看数据库数据 这里我不知道有没有更好的方法目前我是用真机调试的所以只需要按上述文章所述的目录找到 .db 数据库文件 然后使用数据库连接工具这里使用的是Navicat跟着下述操作即可 这样就可以成功查看啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鄢陵县北京网站建设长沙网站制作工作室

需求&#xff1a;页面跳转到目标页面之后&#xff0c;对应的顶部路由高亮 上面的更多 跳转到 学情分析下面的学生分析 <template><div class"topBar" ref"topBar" v-loading.fullscreen.lock"fullscreenLoading"><div class&quo…

二分法算法技巧-思维提升 - 教程

二分法算法技巧-思维提升 - 教程2025-10-07 11:08 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

开源量子模拟引擎:Quantum ESPRESSO本地部署教程,第一性原理计算轻松入门! - 实践

开源量子模拟引擎:Quantum ESPRESSO本地部署教程,第一性原理计算轻松入门! - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

基于Python+Vue开发的大学竞赛报名管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习…

详细介绍:QT常用控件(1)

详细介绍:QT常用控件(1)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

网站制作素材绿色商城网站模板

多参数方法的问题相信很多人曾经都写过多参数的构造方法&#xff0c;就像下面示例的代码。当想要创建一个给全部属性赋值的实例的时候&#xff0c;就会利用这个多参数的构造方法。但是&#xff0c;当类的属性特别多的时候&#xff0c;你还会这么写吗&#xff1f;如果你写了一个…

Generate First, Then Sample: Enhancing Fake News Detection with LLM-Augmented Reinforced Sampling

论文阅读1. 任务 如何提高假新闻检测的效果,特别是针对假新闻本身的检测能力 2. 研究背景与问题提出:假新闻指包含虚假信息的新闻,其在社交媒体上的传播对公共卫生、政治等关键社会议题构成严重威胁。现有假新闻检测…

开发电商网站多少钱刷赞网站推广软件

文末下载上传环境源码客户端js检查一般都是在网页上写一段javascript脚本&#xff0c;校验上传文件的后缀名&#xff0c;有白名单形式也有黑名单形式。查看源代码可以看到有如下代码对上传文件类型进行了限制&#xff1a;我们可以看到对上传文件类型进行了限制。绕过方法1.我们…

手机网站网站开发流程开发软件开发

目录 一、常见的压缩包的扩展名 二、常见的压缩和解压指令 1、tar 2、tar gzip&#xff08;.tar.gz&#xff09; (或 .tgz) 3、tar bzip2&#xff08;.tar.bz2&#xff09; 4、zip 5、gzip 6、bzip2 7、xz 8、rar 9、7z 三、安装解压工具 一、常见的压缩包的扩展…

数据大屏

数据大屏 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1…

K8S上采用helm部署 Prometheus + Grafana

K8S上采用helm部署 Prometheus + Grafanapre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

AI元人文的硅基基石体系:EPU+VPU+WBUC+WAUC深度解析——声明Ai解析

AI元人文的硅基基石体系:EPU+VPU+WBUC+WAUC深度解析 一、引言:硅基生命的人文基因 在2025年阿里云栖大会上,"云智一体,碳硅共生"的主题引发了人们对未来智能形态的深刻思考。随着人工智能技术的迅猛发展…

做熊猫tv网站的目的互联网电子商务网站开发技术

前言 踩着前人的肩膀&#xff0c;努力前行。参考了很多前人的文章。 1.变量声明const和let es6之前声明变量只能用var&#xff0c;var的特点是无论声明在何处&#xff0c;都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部) function test(){if(false){var name …

优秀网站建设哪家专业网页打不开用什么浏览器

引子 网络层能够被分解为两个相互作用的部分&#xff1a; 数据平面和控制平面。 网络层概述 路由器具有截断的协议栈&#xff0c;即没有网络层以上的部分。 如下图所示&#xff0c;是一个简单网络&#xff1a; 转发和路由选择&#xff1a;数据平面和控制平面 网络层的作用…

做画册去什么网站找素材网站建设新闻咨询

官方文档 在前面 文章目录 uboot常见命令学习环境变量网络控制台uboot标准启动其他 升级uboot或内核bin和uimg以及booti和bootm的区别制作uImage更换内核更换uboot后续计划 uboot常见命令学习 环境变量 Environment Variables环境变量 autostart 如果值为yes&#xff0c;则会…

电脑做网站服务器需要什么软件手机网站 侧边栏导航

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、泛型1、什么是泛型2、泛型的语法 二、泛型类的使用1、泛型类的语法2、泛型如何编译的2.1、擦除机制2.2、为什么不能实例化泛…

详细介绍:VSCode+Cline 安装配置及使用说明

详细介绍:VSCode+Cline 安装配置及使用说明2025-10-07 10:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

淮安软件园哪家做网站建设网站需要有什么特色

当我们谈论编程中的数据结构时&#xff0c;顺序容器是不可忽视的一个重要概念。顺序容器是一种能够按照元素添加的顺序来存储和检索数据的数据结构。它们提供了简单而直观的方式来组织和管理数据&#xff0c;为程序员提供了灵活性和性能的平衡。 Qt 中提供了丰富的容器类&…

看手机的网站叫什么建筑公司经营范围大全

手机从开发出来到现在&#xff0c;已经换了很多代了&#xff0c;从大哥大&#xff0c;小灵通&#xff0c;到诺基亚到山寨机到苹果到华为&#xff0c;几十年过去了。手机从奢侈品一下飞去每个人手里&#xff0c;反正我手机有手机已经快10年了&#xff0c;所以我相信每个人对自己…

有关网站建设的知识招标网站大全

最近接触到一些新人&#xff0c;是真正的网络新人&#xff0c;慢慢理解了新人的困惑。 对于新人&#xff0c;每天获取的信息五花八门&#xff0c;这是好的也是极其不好的。因为他们不知道如何筛选&#xff0c;到底适不适合自己去做。 我一直在劝大家去做一些内容创造性的事情…