原文: 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等形式实现数据交互