apicloud数据交互mcm模块

原文: https://blog.csdn.net/xyz_dream/article/details/52965899

混合式开发app,apicloud能快速开发一个中小型甚至大型,功能复杂的app。界面使用html5,js搭建,服务器后端代码减少,调用api云端接口即可。今天浅谈apicloud数据交互模块mcm的简单使用。官方文档个人感觉写得真的很烂,演示的事例太少,刚入门的都不知道怎么使用一些api。并且社区和网上关于这方面的资料比较少,所以自己也是摸石头过河找到点经验和大家分享。


1.创建应用,添加mcm模块





2.建立数据库的表




3.数据操作之model,query对象


model对象实现操作,query对象是实现类似创建sql语句的作用。


在使用model对象之前,封装一个自定义函数用于初始化改model函数,才能够进行使用。



               //初始化function***
function initApiCloud(){

var model= api.require(‘model’);//model对象
model.config({
appKey: ‘自己的appKey’,
host: ‘https://d.apicloud.com'//固定地址
});

return model;
}//end


数据插入: model.insert();





 //创建用户—————
$(“#create”).click(function(){

var model=initApiCloud();//初始化
var userName=$(‘#userName1’).val();//获取名字
var passWord=$(‘#passWord’).val();//获取密码

var jsonModel=’{“user_name”:’+userName+’,”pass_word”:’+passWord+’}’;

model.insert({
class: ‘home_user’,//数据库的表名
value: jsonModel //传入json数据对象
}, function (ret, err) { //ret为成功返回的插入的数据的对象 err为错误对象

var $tbody=$(“#tableShow2”);

if( $(“#tableShow2 tr:first”)) {
$tbody.empty();
show($tbody);
}
});

});//创建事件结束————–


数据查询:model.findAll();得结合query对象使用




                 function show(){

var model=initApiCloud();//初始化
var query= api.require(‘query’);//查询对象

query.createQuery(function(ret, err) { // ret 回调,类似数据库连接对象
if (ret && ret.qid) {
var queryId = ret.qid; //类似数据库连接池的连接对象 id

query.whereEqual({ // where 语句
qid: queryId,
column: “user_name”, //字段名
value: “test”// 值
});

query.limit({ // limit语句
qid:queryId,
value:”20”
});

model.findAll({ //执行查询操作
class: “home_user”,
qid: queryId
}, function(ret, err){ //coding }


数据的修改:



                  var name=$(“#userName3”).val();//用户名
var newValue=$(“#value”).val();//新密码

var query= api.require(‘query’);//查询对象

var model=initApiCloud();//操作对象
//创建查询
query.createQuery(function (ret, err) {

if(ret && ret.qid){

var queryId=ret.qid; //类似数据库连接池session的id
query.whereEqual({ //where语句
qid: queryId,
column: ‘user_name’,
value: name
});

model.findAll({ //查询操作
class: ‘home_user’,
qid: queryId
}, function (ret, err) {

var getId= ret[0].id;//返回的记录的id


model.updateById({
class: ‘home_user’,
id:getId,
value: {‘pass_word’:newValue} //要更改的数据,json形式
}, function (ret, err) {
//coding………..
}


数据删除:





               $(“#delete”).click(function(){

var model=initApiCloud();//model对象

var query= api.require(‘query’);//查询query对象

query.createQuery(function (ret, err) {

if(ret && ret.qid){

var queryId=ret.qid;
var name=$(“#userName2”).val();

query.whereEqual({ //where语句
qid: queryId,
column: ‘user_name’,
value: name
});


model.findAll({ //查询 返回id
class: ‘home_user’,
qid: queryId
}, function (ret, err) {

if(ret){


model.deleteById({ //通过id(数据库中记录的id,不要和ret.qid这个id混淆,ret.qid那个是类似数据库连接的id)
class: ‘home_user’,
id: ret[0].id
}, function (ret, err) {
//coding…….
}


4.其他不懂的问题,上api调试,测试接口和查询相应的mcm,jquery等形式实现数据交互