`
赵彦枝
  • 浏览: 50133 次
  • 性别: Icon_minigender_2
  • 来自: 河北
社区版块
存档分类
最新评论

LeanCloud数据存储

 
阅读更多

                                          LeanCloud数据存储

         数据存储(LeanStorage)是 LeanCloud 提供的核心功能之一,它的使用方法与传统的关系型数据库有诸多不同,下面我们将其与传统数据库的使用方法进行对比。

       下面这条 SQL 语句在绝大数的关系型数据库都可以执行,其结果是在 Todo 表里增加一条新数据: 

INSERT INTO Todo (title, content) VALUES ('工程师周会', '每周工程师会议,周一下午 2 点')

        使用传统的关系型数据库作为应用的数据源几乎无法避免以下步骤:

  • 插入数据之前一定要先创建一个表结构,并且随着之后需求的变化,开发者需要不停地修改数据库的表结构,维护表数据。
  • 每次插入数据的时候,客户端都需要连接数据库来执行数据的增删改查(CRUD)操作。        使用 LeanStorage,实现代码如下: 
// 声明一个 Todo 类型
  var Todo = AV.Object.extend('Todo');
  // 新建一个 Todo 对象
  var todo = new Todo();
  todo.set('title', '工程师周会');
  todo.set('content', '每周工程师会议,周一下午2点');
  todo.save().then(function (todo) {
    // 成功保存之后,执行其他逻辑.
    console.log('New object created with objectId: ' + todo.id);
  }, function (error) {
    // 失败之后执行其他逻辑
    console.log('Failed to create new object, with error message: ' + error.message);
  });

       使用 LeanStorage 的特点在于:

 

  • 不需要单独维护表结构。例如,为上面的 Todo 表新增一个 location 字段,用来表示日程安排的地点,那么刚才的代码只需做如下变动:
    var Todo = AV.Object.extend('Todo');
      var todo = new Todo();
      todo.set('title', '工程师周会');
      todo.set('content', '每周工程师会议,周一下午2点');
      // 只要添加这一行代码,服务端就会自动添加这个字段
      todo.set('location','会议室');
      todo.save().then(function (todo) {
        // 成功保存之后,执行其他逻辑.
      }, function (error) {
        // 失败之后执行其他逻辑
      });
     
  • 数据可以随用随加,这是一种无模式化(Schema Free)的存储方式。
  • 所有对数据的操作请求都通过 HTTPS 访问标准的 REST API 来实现。
  • 我们为各个平台或者语言开发的 SDK 在底层都是调用统一的 REST API,并提供完整的接口对数据进行增删改查。

      LeanStorage 在结构化数据存储方面,与 DB 的区别在于:

          1.Schema Free/Not free 的差异

          2.数据接口上,LeanStorage 是面向对象的(数据操作接口都是基于 Object 的),开放的(所有移动端都可以直接访问),DB 是面向结构的,封闭的(一般在 Server 内部访问);

          3.数据之间关联的方式,DB 是主键外键模型,LeanStorage 则有自己的关系模型(Pointer、Relation 等);

          LeanStorage 支持两种存储类型:    对象和文件

       下面主要说一下如何存储对象,代码如下:

 

// 该语句应该只声明一次
  var TestObject = AV.Object.extend('DataTypeTest');
  var number = 2014;
  var string = 'famous film name is ' + number;
  var date = new Date();
  var array = [string, number];
  var object = { number: number, string: string };
  var testObject = new TestObject();
  testObject.set('testNumber', number);
  testObject.set('testString', string);
  testObject.set('testDate', date);
  testObject.set('testArray', array);
  testObject.set('testObject', object);
  testObject.set('testNull', null);
  testObject.save().then(function(testObject) {
    // 成功
  }, function(error) {
    // 失败
  });

       现在我们保存一个TodoFolder,它可以包含多个 Todo,类似于给行程按文件夹的方式分组。我们并不需要提前去后台创建这个名为TodoFolder 的 Class 类,而仅需要执行如下代码,云端就会自动创建这个类:

  // 声明类型
  var TodoFolder = AV.Object.extend('TodoFolder');
  // 新建对象
  var todoFolder = new TodoFolder();
  // 设置名称
  todoFolder.set('name','工作');
  // 设置优先级
  todoFolder.set('priority',1);
  todoFolder.save().then(function (todo) {
    console.log('objectId is ' + todo.id);
  }, function (error) {
    console.log(error);
  });

         创建完成后,打开 控制台 > 存储,点开 TodoFolder 类,就可以看到刚才添加的数据。除了 name、priority(优先级)之外,其他字段都是数据表的内置属性。

 

    注意:  

     属性名:

       也叫键或 key,必须是由字母、数字或下划线组成的字符串;自定义的属性名,不能以双下划线开头。

     属性值:

      可以是字符串、数字、布尔值、数组或字典。

 

以下为系统保留字段,不能作为属性名来使用。
acl             error            pendingKeys
ACL             fetchWhenSave    running
className       id               updatedAt
code            isDataReady      uuid
createdAt       keyValues
description     objectId

       提高代码的可读性和可维护性,建议使用驼峰式命名法(CamelCase)为类和属性来取名。类,采用大驼峰法,如CustomData.  属性,采用小驼峰法,如 imageUrl.

      注意在测试之前要把下面这行代码加入到你的index.html页面中:

 <script src="http://cdn1.lncld.net/static/js/av-min-1.2.1.js"></script>

 

              下载到本地直接引用也可以,我是下载本地放到lib文件中按下面方式直接引用的:

   <script src="../lib/av-min-1.2.1.js"></script>

     进行代码初始化后加入这行代码,就可以创建 class 或任何其他操作了。创建应用后, 可以在    控制台-应用设置    里面找到应用对应的 appId 和 appKey。然后在路由文件中添加如下代码进行初始化:

app.run(function(){
//应用ID用来识别应用
    var APP_ID = 'RaXOd37qSYs8fKCN82nbC9zd-gzGzoHsz';
//应用Key,用来校验权限(Web端可以配置安全域名来保护数据安全)
    var APP_KEY = 'SMJDrjpJOmuyEuTXjm5lW2BM';
//初始化
    AV.init({
        appId: APP_ID,
        appKey: APP_KEY
    })});

 

 

0
0
分享到:
评论

相关推荐

    daily-check-in:一个打卡小程序 - 基于 leancloud 数据存储

    daily-check-in一个打卡小程序, 基于 leancloud 数据存储。所以不需要建立额外的 webapp 和数据库。开始1. 注册小程序去小程序官网注册。2. 注册 leancloud3. 在 leancloud 创建一个应用开发版本即可(免费)。4. ...

    LeanStorageDemo-Android, 基于 Android SDK,全面示例了 LeanCloud 的存储功能.zip

    LeanCloud 是一款强大的云端后端服务平台,它提供了包括数据存储、实时通信、身份验证等多种功能,极大地简化了开发者的工作流程。在 Android 开发中,利用 LeanCloud 的存储功能,可以轻松实现数据的云同步和管理...

    基于爬虫和LeanCloud数据存储的双语阅读平台设计

    针对移动开发者在移动应用开发的过程中,经常需要用到大量数据信息的问题,提出一种利用爬虫技术获取网络上的数据,并结合LeanCloud进行数据存储,从而为开发者提供海量数据的技术方案。Jsoup是用Java语言开发的知名...

    swift-一个数据存储使用的Leancloud的恋爱APP

    在Swift编程语言中,开发一款基于 Leancloud 数据存储的恋爱APP是一个典型的移动应用开发实践。这个项目名为"Loveprogress-master",它展示了如何利用Swift的强大功能以及Leancloud云服务来构建一个用户友好的社交...

    RecyclerView和CardView实现列表功能,用LeanCloud所存储的数据中填充RecyclerView

    适配器还需要一个数据集,通常是一个ArrayList,用来存放`fm_itemBean.java`定义的bean对象,这些对象代表了LeanCloud存储的每条数据。 `fm_itemBean.java` 应该包含了从LeanCloud获取的每条数据的模型类,可能包含...

    云开发最新2022微信告白墙微信小程序源码项目使用的LeanCloud作为后端云

    2. LeanCloud 数据存储:所有告白信息都会被存储在 LeanCloud 的云端数据库中,确保数据的安全性和可扩展性。 3. 实时通信:利用 LeanCloud 的实时通信功能,当新的告白信息提交后,可以立即推送给在线的其他用户,...

    微信小程序-微信小程序地图定位选点存储

    本程序是用于测试微信小程序地图功能及与LeanCloud数据存储管理功能的Demo。 本程序目前未添加AppID无法进行真机调试,欢迎已经申请到资格的朋友测试反馈。 本程序数据管理功能基于LeanCloud提供的数据存储功能,在...

    swift-一个无后端待办事项应用数据用LeanCloud进行同步。

    这种类型的应用通常被称为“无服务器”或“前端优先”的应用程序,它依赖于第三方服务来处理数据存储和同步,此处选择了 LeanCloud 作为数据同步平台。 Swift是苹果公司为iOS、iPadOS、macOS、watchOS和tvOS开发的...

    Laravel开发-laravel-leancloud

    例如,你可以轻松地创建、读取、更新和删除 Leancloud 数据库中的对象,实现数据的同步和备份,也可以利用SDK进行用户身份验证,实现社交登录功能。同时,SDK还可能支持消息推送、文件存储等功能,简化了与Leancloud...

    vue-leancloud-blog

    Vue.js+LeanCloud单页面博客 ...LeanCloud 数据存储 开发 git clone git@github.com:jiangjiu/vue-leancloud-blog.git $ cd vue-leancloud-blog $ npm install // 启动服务器端, 默认地址 http://localhost:3000 $ l

    使用LeanCloud的分页查询

    LeanCloud 是一个云端后端服务提供商,它提供了丰富的数据存储、实时通信、身份验证等功能,使得开发者能够快速构建应用的后端。在 LeanCloud 中,CQL 是一种专为云数据库设计的查询语言,类似于 SQL,但更适合...

    leancloud的SDK测试代码

    LeanCloud是一家提供后端云服务的公司,它的SDK允许开发者轻松地在移动应用中实现数据存储、用户认证、实时通信等功能。SDK测试代码通常包含用于验证SDK功能、性能以及与其他组件交互的单元测试和集成测试。 描述中...

    LeanCloud 帮助文档

    LeanCloud 是一个全面的后端服务平台,为开发者提供了一系列便捷的云服务,包括存储、推送、实时消息、统计分析等。这个压缩包文件包含了 LeanCloud 的各种开发指南,旨在帮助开发者充分利用其功能来构建高效、稳定...

    leancloud-wxa:小程序leancloud服务端

    综上所述,"小程序Leancloud-wxa"项目涵盖了从前端小程序开发到后端云服务的多个技术栈,包括微信小程序API的运用、JavaScript编程、云函数逻辑处理、Leancloud数据管理和微信支付集成。开发者需要具备全面的技术...

    使用LeanCloud实时通讯搭建的聊天WebApp

    总的来说,"使用 LeanCloud 实时通讯搭建的聊天 WebApp"是一个综合性的项目,涵盖了JavaScript编程、实时通讯技术、用户管理、数据存储等多个方面。通过学习和实践这个项目,开发者不仅可以掌握 LeanCloud 的实时...

    YiIonicListView:用于leancloud的离子列表视图

    YiIonicListView,正如其名,是一个专为Leancloud设计的离子列表视图组件,旨在帮助开发者更轻松地实现在 Ionic 应用中与 Leancloud 数据存储和服务的无缝对接。 首先,我们需要理解Ionic。Ionic是一款开源的HTML5...

    微信小程序-LeanCloud的微信小程序用户登陆Demo

    4. 数据交互:理解如何使用 LeanCloud 的 SDK 进行数据的存取操作,例如用户信息的保存和查询。 5. 安全实践:学习如何安全地处理和存储敏感信息,避免类似忘记删除 Key 的问题发生。 通过这个 Demo,你可以深入...

    javasmack源码-Heard:一个比较完整的图片分享应用

    LeanCloud数据存储针对数据,不管结果多少,属性具体含义如何,它们都可以抽象成统一的对象来处理。LeanCloud 支持存储任意类型的对象,支持对象的增、删、改、查等多种操作,并且开发者无需担心数据规模的大小和...

    小程序LeanCloud程序源码

    - 如何使用存储 SDK 对云端数据进行查询、增加、修改与删除 - 查询结果为一个列表时,如何将其绑定到视图层进行展示以及如何在点击事件中得到对应的数组项 - 如何自动登录 LeanCloud 用户系统 - 如何在登录后设置...

    vue-leancloud-blog, Vue.js Vuex vue-router 我的单页应用博客.zip

    在"vue-leancloud-blog"中,可能使用了LeanCloud的云数据库存储文章和评论数据,云函数处理业务逻辑,如用户认证、数据安全等,同时可能还使用了推送服务来实现通知功能。 项目文件名称"vue-leancloud-blog-master...

Global site tag (gtag.js) - Google Analytics