方法:
openDatabase:这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。
transaction:这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。
executeSql:这个方法用于执行实际的 SQL 查询。
transaction(querysql, errorCallback, successCallback);
querysql:事务回调函数,其中可以执行 SQL 语句。(必选)
errorCallback:出错回调函数。(可选)
successCallback:执行成功回调函数。(可选)
executeSql(sqlStatement, arguments, callback, errorCallback);
sqlStatement:SQL 语句。(必选)
arguments:SQL 语句需要的参数,是一个按照sql语句中的?先后顺序排列的一维数组。(可选)
callback:回调函数。(可选)
errorCallback:出错回调函数。(可选)
学习时可以结合菜鸟教程 https://www.runoob.com/html/html5-web-sql.html
以下是项目中使用到的实例:
//调用
let site=[];
this.lookSql("siteData", "site")
.then((r) => {
// console.log('查询siteData内容:',r)
if (r.len > 0) {
let data = JSON.parse(JSON.stringify(r.data));
for (let key in data) {
site.push(data[key]);
}
}
})
.catch((err) => {
console.log(err);
});
//定义查询
lookSql(database, datatable) {
console.log(database + "-" + datatable);
console.time();
var data, len, msg;
let promise = new Promise((resolve, reject) => {
let db = openDatabase(database, "1.0", "站点数据库", 5 * 1024 * 1024);
db.transaction(function (tx) {
tx.executeSql(
"select * from " + datatable,
[],
function (tx, results) {
(len = results.rows.length), (data = results.rows);
msg = "<p>" + datatable + "查询记录条数: " + len + "</p>";
// document.querySelector("#status").innerHTML += msg;
resolve({ len: len, data: data });
},
function(err){