js操作indexedDB增删改查示例
2024-08-25 15:35:44
js操作indexedDB增删改查示例
if ('indexedDB' in window) {
// 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本
var req = indexedDB.open("TestDB", 1);
req.onupgradeneeded = function(e) {
var db = req.result;
// var store = db.createObjectStore("student", {autoIncrement: true}); 使用自增键
// 创建student表
var store = db.createObjectStore("student", {keyPath: 'id'});
// 设置id为主键
store.createIndex('student_id_unqiue','id', {unique: true});
}
req.onsuccess = function(event) {
var students = [
{id: 1, name: '小叶', age: '11'},
{id: 2, name: '小王', age: '12'},
{id: 3, name: '小张', age: '13'}
];
var db = event.target.result;
// var transaction = db.transaction('student', 'readwrite');
var transaction = db.transaction(['student'], 'readwrite');
transaction.onsuccess = function(event) {
console.log('[Transaction] 好了!');
};
var studentsStore = transaction.objectStore('student');
students.forEach(function(student){
var db_op_req = studentsStore.add(student);
db_op_req.onsuccess = function() {
console.log("存好了");
}
});
studentsStore.count().onsuccess = function(event) {
console.log('学生个数', event.target.result);
};
// 获取id为1的学生
studentsStore.get(1).onsuccess = function(event) {
console.log('id为1的学生', event.target.result);
};
// 更新id为1的学生
students[0].name = '小小叶';
studentsStore.put(students[0]).onsuccess = function(event) {
console.log('更新id为1的学生姓名', event.target.result);
};
// 删除id为2的学生
studentsStore.delete(2).onsuccess = function(event) {
console.log('id为2的学生已经删除');
};
}
req.onerror = function() {
console.log("数据库出错");
}
}else{
console.log('你的浏览器不支持IndexedDB');
}
最新文章
- 不定义JQuery插件,不要说会JQuery 分类: JavaScript 2014-11-24 14:18 155人阅读 评论(0) 收藏
- 深入理解JAVA I/O系列六:Linux中的IO模型
- 意外的节点类型 Element。只能在简单内容或空内容上调用 ReadElementString 方法
- php学习笔记6--php中的文件包含 include,require,include_once,require_once
- 验证码生成-->;漂亮啊
- Qt浅谈之三十九圆形进度条(已经有50篇了)
- Web学习资源及手册查询整理
- DotNet命名规范参考(转)
- php笔记(六)PHP类与对象之对象接口
- List集合和JSON互转工具类
- SVD分解 解齐次线性方程组
- opencontrail-vrouter命令
- c3p0配置文件(c3p0.properties.xml)解读
- weblogic domain creation
- [Node.js与数据库]node-mysql 模块介绍
- robotium之无name、ID仅有desc定位
- 【Docker】基本命令
- Linux FreeTDS的安装与配置
- Asp.net MVC3 CSS 模板
- c++指向指针的指针与 c++指针作为函数参数传递问题