Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。
1,创建数据库以及表
openDatabase对应5个参数:
- 数据库名称
- 数据库版本
- 数据库介绍
- 数据库大小
- 数据库回调函数
var db = openDatabase(
'myDatabase',
'1.0',
'My Database introduce',
2 * 1024 * 1024,
function(){
conosle.log("创建数据库成功")
});
2,创建表
db.transaction(function(tx) {
const sql = 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY,
name TEXT, email TEXT)'
tx.executeSql(sql);
});
3,添加数据 事务提交函数transaction有三个参数:
- 事务函数
- 事务提交成功回调函数
- 事务提交失败回调函数
sql执行函数executeSql有四个参数:
- sql语句
- 默认参数
- sql执行成功回调函数
- sql执行失败回调函数
db.transaction(function(tx) {
const sql = "INSERT INTO users (name, email) VALUES (?, ?)"
tx.executeSql(sql,
['John Doe','john@example.com'],
function(){console.log("sql执行成功")},
function(){console.log("sql执行失败")}
)
},
function(){
console.log("事务提交成功")
},function(){
console.log("事务提交失败")
});
4,查看数据
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM users', [], function(tx, result) {
var rows = result.rows;
console.log("查看结果",rows)
for (var i = 0; i < rows.length; i++) {
var user = rows.item(i);
console.log(user.name, user.email);
}
});
});
5,修改数据
db.transaction(function(tx) {
tx.executeSql('UPDATE users SET name="new Name",email="newEmail" WHERE id=2');
// 扩展:dbtest.executeSql('UPDATE CHART SET log='新值' WHERE id=?', [id]),里面的SQL语句支持动态传入id值进行修改数据
});
6,删除数据
db.transaction(function (tx) {
tx.executeSql('DELETE FROM USERS WHERE id=?', [2])
})