uniapp plus.sqlite

编程入门 行业动态 更新时间:2024-10-09 19:20:39

<a href=https://www.elefans.com/category/jswz/34/1769663.html style=uniapp plus.sqlite"/>

uniapp plus.sqlite

uniapp中进行APP本地数据库操作,利用HTML5+的api及数据库语言可进行数据库表的创建删除,表数据的增删改查。

SQLite模块用于操作本地数据库文件,可实现数据库文件的创建,执行SQL语句等功能。

<template><view><view class="db-info"><view>数据库名:{{dbName}}</view><view>表名:{{dbTable}}</view></view><view class="btn-box"><button @click="openSQL">打开数据库</button><button @click="closeSQL">关闭数据库</button></view><view class="btn-box"><button @click="createTable">创建表</button><button class="special-btn" @click="deleteTable">删除数据表</button></view><view class="btn-box"><button @click="insertTableData">新增表数据</button><button @click="selectTableData">查询表数据</button><button @click="updateTableData">修改表数据</button><button @click="deleteTableData">按条件删除表数据</button></view><view class="table-content"><view class="table-header"><view class="header-info">名字</view><view class="header-info">内容</view><view class="header-info">时间</view></view><view class="table-body-item" v-for="(item,index) in listData" :key='index'><view class="body-item-info">{{item.name}}</view><view class="body-item-info">{{item.content}}</view><view class="body-item-info">{{item.time}}</view></view></view></view>
</template><script>export default {data() {return {listData: [],dbName: 'chat', // 数据库名称dbPath: '_doc/chat.db', // 数据库地址,推荐以下划线为开头   _doc/xxx.db,_doc是相对路径的应用私有文档目录dbTable:'chat' //表名};},onLoad() {this.openSQL();},methods: {isOpen() {// 数据库打开了就返回 true,否则返回 falselet open = plus.sqlite.isOpenDatabase({name: this.dbName,  // 数据库名称path: this.dbPath  // 数据库地址})return open;},// 打开数据库openSQL() {let open = this.isOpen();// 查询是否打开数据库if (!open) {plus.sqlite.openDatabase({//如果数据库存在则打开,不存在则创建。name: this.dbName,path: this.dbPath,success:(e) =>{this.showToast("数据库已打开");},fail:(e) =>{this.showToast("数据库开启失败");}})}else{this.showToast("数据库已打开");}},// 关闭数据库closeSQL() {let open = this.isOpen();if (open) {plus.sqlite.closeDatabase({//完成数据库操作后,必须关闭数据库,否则可能会导致系统资源无法释放。name: this.dbName,success:(e) =>{this.showToast("数据库已关闭");},fail:(e) =>{this.showToast("数据库关闭失败");}})}},// 创建表createTable() {let open = this.isOpen();if (open) {let sql ='"id" INTEGER PRIMARY KEY AUTOINCREMENT,"name" text,"content" text,"time" text';plus.sqlite.executeSql({//executeSql 执行增删改等操作的SQL语句name: this.dbName,sql: `CREATE TABLE IF NOT EXISTS ${this.dbTable}(${sql})`,success:(e) =>{console.log(e)this.showToast("创建chat表成功");},fail:(e) =>{console.log(e)this.showToast("创建表失败");}})} else {this.showToast("数据库未打开");}},//删除表deleteTable() {let sql = `DROP TABLE IF EXISTS ${this.dbTable}`;plus.sqlite.executeSql({name: this.dbName,sql: sql,success:(e) =>{this.showToast("删除表成功");this.listData = []},fail:(e) =>{console.log(e)this.showToast("删除表失败");}})},// 新增表数据insertTableData() {let open = this.isOpen();if (open) {let arr = [{name: '张三',content: "test_1"},{name: '李四',content: "test_2"}]arr.map(item => {let time = this.formatDate(new Date().getTime());let data = `'${item.name}','${item.content}','${time}'`;let condition = "'name','content','time'";let sql = `INSERT INTO ${this.dbTable} (${condition}) VALUES(${data})`;plus.sqlite.executeSql({name: this.dbName,sql: sql,success:(e) =>{this.showToast("新增数据成功");this.selectTableData();},fail:(e) =>{console.log(e)this.showToast("新增数据失败");}})})} else {this.showToast("数据库未打开");}},// 查询表数据selectTableData() {let open = this.isOpen();if (open) {let sql = `SELECT * FROM ${this.dbTable}`;plus.sqlite.selectSql({name: this.dbName,sql: sql,success:(e) =>{console.log("表数据:", e);this.listData = e;},fail:(e) =>{console.log("查询失败", e);}})} else {this.showToast("数据库未打开");}},// 修改表数据updateTableData() {let open = this.isOpen();if (open) {let time = this.formatDate(new Date().getTime());let data = `content = '内容修改,更新时间',time = '${time}'`;let sql = `UPDATE ${this.dbTable} SET ${data} WHERE name = '张三'`;plus.sqlite.executeSql({name: this.dbName,sql: sql,success:(e) =>{this.showToast("修改表数据成功");this.selectTableData();},fail:(e) =>{console.log("修改失败", e);}})} else {this.showToast("数据库未打开");}},// 删除表数据deleteTableData() {let open = this.isOpen();if (open) {let sql = `DELETE FROM ${this.dbTable} WHERE name = '李四'`;plus.sqlite.executeSql({name: this.dbName,sql: sql,success:(e) =>{this.showToast("删除表数据成功");this.selectTableData();},fail:(e) =>{console.log("删除失败", e);}})} else {this.showToast("数据库未打开");}},// 提示框showToast: function(str) {uni.showToast({icon: "none",title: str,mask: true});},// 时间戳转年月日formatDate(data) {let now = new Date(data);var year = now.getFullYear(); //取得4位数的年份var month =now.getMonth() + 1 < 10 ?"0" + (now.getMonth() + 1) :now.getMonth() + 1;var date = now.getDate() < 10 ? "0" + now.getDate() : now.getDate();var hour = now.getHours() < 10 ? "0" + now.getHours() : now.getHours();var minute =now.getMinutes() < 10 ? "0" + now.getMinutes() : now.getMinutes();var second =now.getSeconds() < 10 ? "0" + now.getSeconds() : now.getSeconds();return (year +"-" +month +"-" +date +" " +hour +":" +minute +":" +second);}}};
</script><style lang="scss" scoped>.btn-box{width: 100%;	display: flex;justify-content: flex-start;flex-wrap: wrap;button{width: 45%;margin: 1% 2%;}.special-btn{background-color: cornflowerblue;color: #fff;}}.table-content{width: 100%;padding: 0 10px;.table-header,.table-body-item{width: 100%;display: flex;.header-info,.body-item-info{// height: 32px;border-right: 1px solid #dedede;padding-left: 5px;line-height: 32px;}.header-info:nth-child(1), .body-item-info:nth-child(1){width: 30%;}.header-info:nth-child(2), .body-item-info:nth-child(2){width: 50%;}.header-info:last-child, .body-item-info:last-child{width: 20%;}}.table-header{border: 1px solid #dedede;border-right: none;}.table-body-item{border-bottom: 1px solid #dedede;}}
</style>

 

 

更多推荐

uniapp plus.sqlite

本文发布于:2024-02-13 19:00:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760331.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:uniapp   sqlite

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!