数据库是现代信息技术中非常重要的技术,与生活(衣食住行)息息相关,刷饭卡吃饭,淘宝购物、12306购票、刷微信付款其实都是对数据库的基本操作。
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间(Tablespace)构成。 https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%BA%93
本公众号所关联的小程序新工科课程设计HTML5小程序(猝不及防的AD)自然也不例外,列表中信息都是读取腾讯云数据库中的记录。
例如js读取腾讯云数据库操作代码如下:
function queryRecords(table, cond, callBackFun) {
const db = wx.cloud.database();
//定义每次获取的条数
const MAX_LIMIT = 20;
//先取出集合的总数
db.collection(table).count().then(res => {
const total = res.total; console.log("查询到数据库中记录数为:",total,"现开始读取之");
//计算需分几次取
const batchTimes = Math.ceil(total / MAX_LIMIT);
//初次循环获取云端数据库的分次数的promise数组
for (let i = 0; i < batchTimes; i++) {
const promise = db.collection(table).skip(i * MAX_LIMIT).limit(MAX_LIMIT).get({
success: res => {
callBackFun(res.data, i, batchTimes,total);
//console.log('[数据库] [查询记录] 成功: ', res.data);
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
});
callBackFun([]);
//console.error('[数据库] [查询记录] 失败:', err);
}
});
};
});
}
function fectchLiveData(fetchDataBack){
var allData = [];
//由于需要同步获取数据,可能较慢,最好加入加载动画
wx.showLoading({title: '加载中',});
queryRecords("xxx-DB", {},function (data,i,batchTimes,total) {
//console.log("数据库才查询完成,慢死!");
//二次循环根据获取的promise数组的数据长度获取全部数据push到records数组中
for (let j = 0; j < data.length; j++) {
allData.push(data[j]);
} console.log(i, batchTimes, allData.length);
if (allData.length == total){
console.log("Acquired Total Data Legth:", total, "Right Now!");
fetchDataBack(allData);
}
});
}
腾讯云数据库增查改删基本操作:
function addRecord(table, newRec) {
const db = wx.cloud.database()
db.collection(table).add({
data: newRec,
success: res => {
wx.showToast({
title: '新增记录成功',
})
console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '新增记录失败'
})
console.error('[数据库] [新增记录] 失败:', err)
}
});
}
function queryRecords(table, cond, callBackFun) {
const db = wx.cloud.database();
//cond={name:'张无忌'};
// 查询当前用户所有的 counters
console.log(table,cond);
db.collection(table).where(cond).get({
success: res => {
callBackFun(res.data);
console.log('[数据库] [查询记录] 成功: ', res.data);
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
});
callBackFun([]);
console.error('[数据库] [查询记录] 失败:', err);
}
});
}
function queryRecord(table, curOpenid, recQueryed/*没有用*/, callBackFun=null) {
const db = wx.cloud.database()
// 查询当前用户所有的 counters
db.collection(table).where({
_openid: curOpenid
}).get({
success: res => {
recQueryed = res.data;
callBackFun(res.data);
console.log('[数据库] [依据openid查询记录] 成功: ', res.data);
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
});
callBackFun([]);
console.error('[数据库] [依据openid查询记录] 失败:', err);
}
});
}
function updateRecord(table, recID, newRec) {
const db = wx.cloud.database();
//console.log("newRec", newRec);
db.collection(table).doc(recID).update({
data: newRec,
success: res => {
console.log('[数据库] [更新记录] 成功: ', res);
},
fail: err => {
icon: 'none',
console.error('[数据库] [更新记录] 失败:', err)
}
})
}
function queryAndUpdateRecord(table, curOpenid, newRec) {
const db = wx.cloud.database()
// 查询当前用户所有的 counters
db.collection(table).where({
_openid: curOpenid
}).get({
success: res => {
console.log('[数据库] [查询openid记录] 成功: ', res.data);
if (res.data.length != 0) {
updateRecord(table, res.data[0]._id, newRec);
} else {
addRecord(table, newRec);
}
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询更新记录失败'
});
console.error('[数据库] [查询更新记录] 失败:', err);
return '';
}
});
}
本文分享自 传输过程数值模拟学习笔记 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!