最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 记一次封装indexedDB的实践之CC_DB---七日打卡

    正文概述 掘金(paodan)   2021-01-16   695

    IndexDB是什么?

    IndexedDB是浏览器提供的本地数据库,它可以被网页脚本创建和操作。
    IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。就数据库类型而言,IndexedDB 不属于关系型数据库(不支持 SQL 查询语句),更接近 NoSQL 数据库。

    CC_DB是什么?

    CC_DB是一款个人对indexedDB的二次封装的前端数据库框架。

    为什么用?

    一、简洁的数据库操作语句;
    二、高效的数据库操作性能;
    三、让开发人员把精力都放在业务上,其它的由CC_DB来做。

    使用方法:

    一、安装

    在vue项目的index.html文件中引入:

    <script src="https://sysytest.oss-cn-beijing.aliyuncs.com/package/ccDB/ccdb0.1.min.js"></script>
    

    二、使用指南

    1.创建CC_DB实例对象

    在成功引入上述的js文件后,CC_DB 构造函数就被挂载到window中了,然后就可以使用这个构造函数new实例对象了。
    代码说明如下:

    var ccdb = new window.Ccdb()
    

    2.使用实例化对象创建表对象

    ccdb.build(
    	'yourDbName', //数据库名
    	'yourTableName', // 表名
    	1, //版本号
    	{
    		keyPath:'yourKeyPathName',//表的主键名
    		autoIncrement:false,//是否自动生成主键
    		index:[
    			{
    				keyName:'yourKeyName',//键名
    				uniqueName:'yourIndexName',//索引名称
    				unique:false//是否唯一
    			}
    		]
    	}
    )
    

    3.获取表对象

    表对象创建完后,将自动挂载到ccdb对象中,就可以直接使用ccdb访问。 yourDbName为创建的数据库名。 yourTableName为创建的表名。

    4、插入数据

    ccdb.yourDbName.yourTableName.insert({id:5,name:'流氓',sex:2,content:'你好',time:'2020-12-20'}).then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    ccdb.yourDbName.yourTableName.insert(
    	{id:5,name:'流氓',sex:2,content:'你好',time:'2020-12-20'},
    	true //insert 的第二个参数为true 时 , 根据主键判断如果数据存在时更新数据,不存在时插入数据
    	).then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    
    

    5、删除数据

    ccdb.yourDbName.yourTableName.filter({sex:1}).delete().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    6、更新数据

    ccdb.yourDbName.yourTableName.filter({sex:1}).update({sex:2}).then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    7.查询数据
    (1)、查询对应表的所有数据 (all)

    ccdb.yourDbName.yourTableName.all().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (2)、查询第一条数据 (first)

    ccdb.yourDbName.yourTableName.first().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (3)、查询最后一条数据(last)

    ccdb.yourDbName.yourTableName.last().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (4)、分页查询数据

    ccdb.yourDbName.yourTableName.limit(15).offset(0).then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (5)、过滤查询数据(filter)

    ccdb.yourDbName.yourTableName.filter({id:5}).all().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (6)、模糊过滤查询(filter)

    ccdb.yourDbName.yourTableName.filter({
    		id:{
    			type:'like',
    			value:/[0-9]+/   //正则
    		}
    	}).all().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (7)、自定义过滤方法查询(filter)

    ccdb.yourDbName.yourTableName.filter({
    		yourKeyName:function(keyValue,item){
    			//keyValue 为yourKeyName 的值
    			//item 为遍历到的某条数据
    			
    			//...您的逻辑判断
    			
    			return true //返回 true 表示成功匹配此条数据 ,false 表示过滤掉此条数据
    		}
    	}).all().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (8)、排序查询(sort)

    参数说明:
    第一个参数为指定排序的字段
    第二个参数为排序的方式 next(升序)、 nextunique (升序去重)、prev (降序)、 prevunique(降序去重)

    ccdb.yourDbName.yourTableName.sort('id','next').all().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (9)、查询数据条数

    ccdb.yourDbName.yourTableName.count().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    
    ccdb.yourDbName.yourTableName.filter({sex:1}).count().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    

    (10)、各个功能组合使用

    
    ccdb.yourDbName.yourTableName.filter({sex:1}).limit(5).offset(0).then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    
    ccdb.yourDbName.yourTableName.filter({sex:1}).sort('id','prev').all().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    
    //获取最后一个sex=1的数据
    ccdb.yourDbName.yourTableName.filter({sex:1}).last().then((e)=>{
    	if(e.status==200){
    		console.log(e)
    	}
    })
    
    

    起源地下载网 » 记一次封装indexedDB的实践之CC_DB---七日打卡

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元