饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)

饭后Android第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)

    • 1.Bmob 简介
      • 1.后端搭建
      • 2. 什么是BaaS ?
      • 3.Bmob 介绍
    • 2.Bomb使用方法
        • 1.注册登录
        • 2.创建应用
        • 3.获取应用密钥和下载SDK
    • 3.Android使用方法
          • 1.AndroidStudio配置
          • 2.Manifest.xml文件配置
          • 3.初始化BmobSDK
          • 4.创建实体类
          • 5.增加一条数据
          • 6.删除一条数据(根据objectId)
          • 7.修改一条数据
          • 8.查询一条数据(根据objectId查询)
          • 9.查询数据(根据位置)
          • 10.查询数据(根据条件)
          • 11.模糊查询(付费)
          • 12.查询数据(BQL查询)
          • 13.模糊查询破解
    • 3.Vue-cli使用方法
          • 1.创建vue项目
          • 2.安装sdk
          • 3. 引入依赖和初始化
          • 4.查询表数据
          • 5.添加一条数据
          • 6.修改一条数据
          • 7.删除一条数据

1.Bmob 简介

1.后端搭建

建立数据库—>jdbc连接数据库—> 部署Tomcat—> dao,service,controller三层架构

2. 什么是BaaS ?

BaaS(Backend as a Service,后端即服务,是指我们不再编写或管理所有服务端组件,可以使用领域通用的远程组件(而不是进程内的库)来提供服务。Baas 公司为移动应用开发者提供整合云后端的边界服务。它为应用开发提供了后台的云服务。BaaS作为应用开发的新模型,进一步实现专业分工,有助于应用的成本下降和市场的进一步繁荣。

换句话说, 就是向移动开发者提供现成的后台服务,如存储、消息推送、 托管环境 、数据库和分析等服务。程序员们只需一心一意做产品,而不需要过多考虑后端的服务器程序,这使得移动开发变得更轻松、更容易。

而在Baas服务 国内提供商的 后台数据存储中就有我今天所要讲的-------Bmob

3.Bmob 介绍

Bmob这是一个全方位一体化的后端服务平台,提供了可靠的 Serverless 云服务,轻松拥有开发中需要的各种后端能力,Bmob 后端云专注于为移动应用提供一整套后端云服务,帮助开发者免去几乎所有的服务器端编码的工作量,成倍降低开发成本和开发时间。

用我的话说,就是Idea里面的代码你都不用写

Bmob主要拥有数据服务,云函数,短信服务,即时通讯和游戏实时后端等功能。

官网:https://www.bmob.cn/

2.Bomb使用方法

1.注册登录

打开官网,注册登录 ,激活Bmob账户

2.创建应用

3.获取应用密钥和下载SDK

点击打开应用的应用key页面

在这里插入图片描述

复制应用的Application ID

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第1张图片

获取Application ID

3.Android使用方法

1.AndroidStudio配置

鉴于目前Google官方推荐使用 Android Studio 进行Android项目开发,自 V3.4.2 开始,Bmob Android SDK 可以使用Gradle来进行包依赖管理,如果你使用Android Studio来进行基于BmobSDK的项目开发,有两种方式,这里我们只介绍自动导入

  1. Projectbuild.gradle 文件中添加 Bmob的maven仓库地址

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第2张图片

//Bmob的maven仓库地址--必填

maven {
     url 'https://dl.bintray.com/chaozhouzhang/maven' }

2.在appbuild.gradle文件中添加依赖文件
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第3张图片

useLibrary 'org.apache.http.legacy'
    compileOptions {
     
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第4张图片

//bmob所需依赖
    implementation 'cn.bmob.android:bmob-sdk:3.7.8'
    implementation "io.reactivex.rxjava2:rxjava:2.2.20"
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
    implementation 'com.squareup.okhttp3:okhttp:3.14.1'
    implementation 'com.squareup.okio:okio:2.2.2'
    implementation 'com.google.code.gson:gson:2.8.5'
2.Manifest.xml文件配置

第一步,在Manifest.xml中添加你应用所需的权限配置

<!--允许联网 --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息  --> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!--获取wifi网络状态的信息 --> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<!--保持CPU 运转,屏幕和键盘灯有可能是关闭的,用于文件上传和下载 -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<!--获取sd卡写的权限,用于文件上传和下载-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许读取手机状态 用于创建BmobInstallation--> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第5张图片

第二步,配置ContentProvider

在里面添加内容提供者ContentProvider

<provider
    android:name="cn.bmob.v3.util.BmobContentProvider"
    android:authorities="你的应用包名.BmobContentProvider">
</provider>

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第6张图片

3.初始化BmobSDK

在你应用程序启动的Application的onCreate()方法中初始化Bmob功能。

我们需要创建一个application类继承Application,然后在oncreat()方法里初始化

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第7张图片

代码如下所示:

public class Myapplication  extends Application {
     
    @Override
    public void onCreate() {
     
        super.onCreate();
        //提供以下两种方式进行初始化操作:

        //第一:默认初始化
        //Bmob.initialize(this, "179b1e34569243c3379fee764060ef0c");//博主的测试应用
        Bmob.initialize(this, "你的Application ID");
        // 注:自v3.5.2开始,数据sdk内部缝合了统计sdk,开发者无需额外集成,传渠道参数即可,不传默认没开启数据统计功能
        //Bmob.initialize(this, "Your Application ID","bmob");

        //第二:自v3.4.7版本开始,设置BmobConfig,允许设置请求超时时间、文件分片上传时每片的大小、文件的过期时间(单位为秒),
        //BmobConfig config =new BmobConfig.Builder(this)
        设置appkey
        //.setApplicationId("Your Application ID")
        请求超时时间(单位为秒):默认15s
        //.setConnectTimeout(30)
        文件分片上传时每片的大小(单位字节),默认512*1024
        //.setUploadBlockSize(1024*1024)
        文件的过期时间(单位为秒):默认1800s
        //.setFileExpiration(2500)
        //.build();
        //Bmob.initialize(config);
    }
}

然后,注册application,将application的name指定为创建的application名字,并且添加属性允许明文http传输

android:name=".Myapplication"
android:usesCleartextTraffic="true"

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第8张图片

4.创建实体类

这个实体类需要继承 BmobObject

public class Person extends BmobObject {
     
    private String name;
    private String address;

    public String getName() {
     
        return name;
    }
    public void setName(String name) {
     
        this.name = name;
    }
    public String getAddress() {
     
        return address;
    }
    public void setAddress(String address) {
     
        this.address = address;
    }
}

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第9张图片

5.增加一条数据
//Person为表名
Person p2 = new Person();
        p2.setName("lucky");
        p2.setAddress("北京海淀");
        p2.save(new SaveListener<String>() {
     
            @Override
            public void done(String objectId, BmobException e) {
     
                if(e==null){
     
                    Toast.makeText(MainActivity.this,"添加数据成功,返回objectId为:"+objectId,Toast.LENGTH_SHORT).show();
                }else{
     
                    Toast.makeText(MainActivity.this,"创建数据失败:" + e.getMessage(),Toast.LENGTH_SHORT).show();
                  
                }
            }
        });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第10张图片

代码放进activity,运行
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第11张图片

再看后台,就已经有数据了

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第12张图片

后台可以直接实现对数据进行增删改查,设置主键这些功能。

6.删除一条数据(根据objectId)
 //Person为表名
                Person p2 = new Person();
                p2.setObjectId("v0sfAAAd");
                p2.delete(new UpdateListener() {
     

                    @Override
                    public void done(BmobException e) {
     
                        if(e==null){
     
                            Toast.makeText(MainActivity.this,"删除成功:"+p2.getUpdatedAt(),Toast.LENGTH_SHORT).show();
                            Log.i("finddata","删除成功 ");
                        }else{
     
                            Toast.makeText(MainActivity.this,"删除失败:" + e.getMessage(),Toast.LENGTH_SHORT).show();

                        }
                    }

                });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第13张图片

7.修改一条数据
 //Person为表名
                Person p2 = new Person();
                p2.setAddress("新的数据");
                p2.update("I7DS666C", new UpdateListener() {
     

                    @Override
                    public void done(BmobException e) {
     
                        if(e==null){
     
                            Toast.makeText(MainActivity.this,"更新成功:"+p2.getUpdatedAt(),Toast.LENGTH_SHORT).show();
                            Log.i("finddata","修改成功 ");
                        }else{
     
                            Toast.makeText(MainActivity.this,"更新失败:" + e.getMessage(),Toast.LENGTH_SHORT).show();
                        }
                    }

                });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第14张图片

8.查询一条数据(根据objectId查询)
//Person为表名
        BmobQuery<Person> bmobQuery = new BmobQuery<Person>();
        bmobQuery.getObject("查询数据的objectId", new QueryListener<Person>() {
     
            @Override
            public void done(Person object,BmobException e) {
     
                if(e==null){
     
                    Toast.makeText(MainActivity.this,"查询成功   "+object.getName()+object.getAddress(),Toast.LENGTH_SHORT).show();
                }else{
     
                    Toast.makeText(MainActivity.this,"查询失败:" + e.getMessage(),Toast.LENGTH_SHORT).show();
                }
            }
        });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第15张图片

9.查询数据(根据位置)

链式回调,有点类似于游标查询

 BmobQuery<Person> query = new BmobQuery<>();
        query.setLimit(10).setSkip(0).order("-createdAt")//setLimit为查询的条数,setSkip为跳过前几条,也就是不查询前几条
                .findObjects(new FindListener<Person>() {
     
                    @Override
                    public void done(List<Person> object, BmobException e) {
     
                        if (e == null) {
     
                            for (int i=0;i<object.size();i++){
     
                                Toast.makeText(MainActivity.this,"查询成功   "+object.get(i).getName()+object.get(i).getAddress(),Toast.LENGTH_SHORT).show();
                                Log.i("finddata",object.get(i).getName()+object.get(i).getAddress());
                            }

                        } else {
     
                            Toast.makeText(MainActivity.this,"查询失败:" + e.getMessage(),Toast.LENGTH_SHORT).show();
                        }
                    }
                });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第16张图片

10.查询数据(根据条件)

在查询的使用过程中,基于不同条件的查询是非常常见的,BmobQuery同样也支持不同条件的查询。

比较查询
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第17张图片

 BmobQuery<Person> categoryBmobQuery = new BmobQuery<>();
            categoryBmobQuery.addWhereEqualTo("name", "222");
            categoryBmobQuery.findObjects(new FindListener<Person>() {
     
                @Override
                public void done(List<Person> object, BmobException e) {
     
                    if (e == null) {
     
                        for (int i=0;i<object.size();i++){
     
                            Toast.makeText(MainActivity.this,"查询成功   "+"name:"+object.get(i).getName()+" "+object.get(i).getAddress(),Toast.LENGTH_SHORT).show();
                            Log.i("finddata","name:"+object.get(i).getName()+" "+object.get(i).getAddress());
                        }

                    } else {
     
                        Log.e("BMOB", e.toString());
                        Toast.makeText(MainActivity.this, e.getMessage(),Toast.LENGTH_SHORT).show();
                    }
                }
            });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第18张图片

11.模糊查询(付费)

这个有点小坑.试了确实没反应,不过我们也可以了解一下,等以后豪了用

对字符串值的模糊查询 比如 查询包含字符串的值,有几种方法。

你可以使用任何正确的正则表达式来检索相匹配的值,使用addWhereMatches方法:

categoryBmobQuery.addWhereMatches(("username", "^[A-Z]\\d");

还可以使用如下方法:

//查询username字段的值含有“sm”的数据
categoryBmobQuery.addWhereContains("username", "sm");

//查询username字段的值是以“sm“字开头的数据
categoryBmobQuery.whereStartsWith("username", "sm");

// 查询username字段的值是以“ile“字结尾的数据
categoryBmobQuery.whereEndsWith("username", "ile");
12.查询数据(BQL查询)

Bmob Query Language(简称 BQL) 是 Bmob 自 BmobSDKV3.3.7 版本开始,为查询 API 定制的一套类似 SQL 查询语法的子集和变种,主要目的是降低大家学习 Bmob 查询API 的成本,可以使用传统的 SQL 语法来查询 Bmob 应用内的数据。

具体的 BQL 语法,请参考 Bmob Query Language 详细指南。

String bql =" select * from Person";//查询Person表里所有数据
        new BmobQuery<Person>().doSQLQuery(bql,new SQLQueryListener<Person>(){
     

            @Override
            public void done(BmobQueryResult<Person> result, BmobException e) {
     
                if(e ==null){
     
                    List<Person> object = (List<Person>) result.getResults();
                    if(object!=null && object.size()>0){
     
                        for (int i=0;i<object.size();i++){
     

                            Toast.makeText(MainActivity.this,"查询成功   "+"name:"+object.get(i).getName()+" "+object.get(i).getAddress(),Toast.LENGTH_SHORT).show();
                            Log.i("finddata","name:"+object.get(i).getName()+" "+object.get(i).getAddress());
                        }
                    }else{
     
                        Log.i("smile", "查询成功,无数据返回");
                    }
                }else{
     
                    Log.i("smile", "错误码:"+e.getErrorCode()+",错误描述:"+e.getMessage());
                }
            }
        });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第19张图片

13.模糊查询破解
 String bql =" select * from Person";
        new BmobQuery<Person>().doSQLQuery(bql,new SQLQueryListener<Person>(){
     

            @Override
            public void done(BmobQueryResult<Person> result, BmobException e) {
     
                if(e ==null){
     
                    List<Person> object = (List<Person>) result.getResults();
                    if(object!=null && object.size()>0){
     
                        for (int i=0;i<object.size();i++){
     
                                String string = object.get(i).getName();
                                String[] parts = string.split("");
                                for (int j=1;j<parts.length;j++){
     
                                    String part1 = parts[j];
                                    if (part1.equals("2") ||string.equals("222")){
     
                                        Toast.makeText(MainActivity.this,"查询成功   "+"name:"+object.get(i).getName()+" "+object.get(i).getAddress(),Toast.LENGTH_SHORT).show();
                                        Log.i("finddata","name:"+object.get(i).getName());
                                        break;

                                    }

                                }




                        }
                    }else{
     
                        Log.i("smile", "查询成功,无数据返回");
                    }
                }else{
     
                    Log.i("smile", "错误码:"+e.getErrorCode()+",错误描述:"+e.getMessage());
                }
            }
        });

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第20张图片

3.Vue-cli使用方法

1.创建vue项目

第一步,在cmd中输入命令,通过脚手架创建一个vue项目

vue ui

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第21张图片

第二步,打开项目管理器,设置路径

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第22张图片


设置项目名称

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第23张图片


饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第24张图片


创建好后,将创建的项目移到hbuild的项目目录下
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第25张图片


创建成功

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第26张图片

2.安装sdk

在vue中安装sdk

npm install hydrogen-js-sdk

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第27张图片

3. 引入依赖和初始化

在main.js中 引入依赖和初始化

// 引用Bomb
import Bmob from "hydrogen-js-sdk";
// 挂载到全局使用
Vue.prototype.Bmob = Bmob
// 初始化SDK 放入你数据库对应的Secret Key和API安全码
Bmob.initialize("你的Secret Key", "你的API 安全码");
// 调试模式
Bmob.debug(true)

Secret Key

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第28张图片

API 安全码

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第29张图片

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第30张图片

4.查询表数据
mounted() {
     
			this.fun();
		},
		methods: {
     
			fun() {
     

				const query = this.Bmob.Query("Person");
				query.find().then(res => {
     
					console.log(res)
				});
			}


		}

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第31张图片

检查Bmob数据库,返回正确

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第32张图片

5.添加一条数据
add() {
     
				const query = this.Bmob.Query('Person');
				query.set("name", "新数据")
				query.set("address", "新的数据")
				query.save().then(res => {
     
					console.log(res)
				}).catch(err => {
     
					console.log(err)
				})
			}

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第33张图片

查看数据库,添加成功
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第34张图片

6.修改一条数据

通过objectId来修改

update() {
     
				const query = this.Bmob.Query('Person');
				query.set('id', 'DSe4222B') //需要修改的objectId
				query.set('address', '修改的数据')
				query.save().then(res => {
     
					console.log(res)
				}).catch(err => {
     
					console.log(err)
				})

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第35张图片
查看控制台数据库
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第36张图片

7.删除一条数据

通过objectId来删除

delete() {
     
				const query = this.Bmob.Query('Person');
				query.destroy('DSe4222B').then(res => {
     
					console.log(res)
				}).catch(err => {
     
					console.log(err)
				})
			}

饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第37张图片
查看控制台
饭后Android 第六餐-Bmob云后端(Bmob介绍,Android使用方法-增删改查,Vue-cli使用方法-增删改查)_第38张图片

好啦关于Bmob的增删改查就介绍到这里啦,是不是后端搭建仿佛轻松了许多,妈妈再也不用担心我不会增删改查啦,谢谢您的阅读与支持

博主为了可以学到更多的Android知识,创建了一个安卓知识交流群,欢迎大佬入群,当然也欢迎和我一样的安卓小白,我们可以一起交流,最重要的是快乐水群,记得定个小目标,冲击bat在这里插入图片描述

你可能感兴趣的:(Android,android,数据库,java,Bmob)