Java-如何在Android中从azure移动服务检索和使用单个值

Java-如何在Android中从azure移动服务检索和使用单个值,java,android,azure,azure-mobile-services,Java,Android,Azure,Azure Mobile Services,我是azure新手,但我知道一些事情,比如如何检索数据并将数据存储到azure,为此我遵循azure官方文档 链接在这里- 但问题是,本教程仅展示如何使用适配器和列表从azure检索和使用数据我想知道,我如何从azure移动服务中检索单个值,以及如何在android中使用它 Plzz为我提供了后端代码(如果有)和java代码。提前感谢您可以使用自定义API完成此操作。请参阅此链接: 代码如下所示: exports.post = function(request, response) {

我是azure新手,但我知道一些事情,比如如何检索数据并将数据存储到azure,为此我遵循azure官方文档

链接在这里-

但问题是,本教程仅展示如何使用适配器和列表从azure检索和使用数据我想知道,我如何从azure移动服务中检索单个值,以及如何在android中使用它


Plzz为我提供了后端代码(如果有)和java代码。提前感谢

您可以使用自定义API完成此操作。请参阅此链接:

代码如下所示:

exports.post = function(request, response) {
    response.send(200, "{ message: 'Hello, world!' }");
} 
然后可在
https://todolist.azure-mobile.net/api/APIFILENAME

如果要访问表,可以执行以下操作:

exports.post = function(request, response) {
    var userTable = tables.getTable('users');

    permissionsTable
        .where({ userId: user.userId})
        .read({ success: sendUser });
} 

function sendUser(results){
  if(results.length <= 0) {
    res.send(200, {});
  } else {
    res.send(200, {result: results[0]});
  }
}
ListenableFuture<MarkAllResult> result = mClient.invokeApi( "UsersAPI", MarkAllResult.class ); 
exports.post=函数(请求、响应){
var userTable=tables.getTable('users');
许可证稳定
.where({userId:user.userId})
.read({success:sendUser});
} 
函数sendUser(结果){

如果(results.length我解决了这个问题。不需要创建自定义API

只需遵循基本原则,以下是代码:-

final String[] design = new String[1];

private MobileServiceTable<User> mUser;

mUser = mClient.getTable(User.class);

            new AsyncTask<Void, Void, Void>() {
                @Override
                protected Void doInBackground(Void... params) {
                    try {
                        final MobileServiceList<User> result =
                                mUser.where().field("name").eq(x).execute().get();
                        for (User item : result) {
                           // Log.i(TAG, "Read object with ID " + item.id);
                            desig[0] = item.getDesignation(); //getDesignation() is a function in User class ie- they are getters and setters
                            Log.v("FINALLY DESIGNATION IS", desig[0]);

                        }

                    } catch (Exception exception) {
                       exception.printStackTrace();
                    }
                    return null;
                }

                @Override
                protected void onPostExecute(Void aVoid) {
                    super.onPostExecute(aVoid);
                    designation.setText(desig[0]);
                }
            }.execute();
最终字符串[]设计=新字符串[1];
私人移动服务台;
mUser=mClient.getTable(User.class);
新建异步任务(){
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
最终MobileServiceList结果=
mUser.where().field(“name”).eq(x).execute().get();
用于(用户项:结果){
//Log.i(标记,“读取ID为的对象”+item.ID);
desig[0]=item.getDesignation();//getDesignation()是用户类ie中的一个函数-它们是getter和setter
Log.v(“最终名称为”,设计[0]);
}
}捕获(异常){
异常。printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
名称.setText(设计[0]);
}
}.execute();
不要忘记为
序列化
和所有内容创建一个类
User
。您还应该定义数组

如果你发现它不起作用,请随意写

编辑:-

design[0]
是一个大小为1的数组


eq(x)
等于
x
其中,
x
变量包含我希望从数据库(azure)指定的用户名。

最佳解决方案是在服务器上创建一个api,该api接受一个ID以返回单个对象/表行

在android应用程序中,您只需拨打:

MobileServiceTable<YourClass> mYourTable;

mClient = new MobileServiceClient(
                        "https://yoursite.azurewebsites.net/",
                        mContext);
mYourTable = mClient.getTable(YourClass.class);
YourClass request = mYourTable.lookUp(someId).get(); 
// request -> https://yoursite.azurewebsites.net/tables/yourclass/someId
MobileServiceTable mYourTable;
mClient=新的MobileServiceClient(
"https://yoursite.azurewebsites.net/",
mContext);
mYourTable=mClient.getTable(YourClass.class);
YourClass request=mYourTable.lookUp(someId.get();
//请求->https://yoursite.azurewebsites.net/tables/yourclass/someId

YourClass
应该与服务器上的对象具有相同的属性。

ok……。让我来访问用户“sumit”的指定(“sumit”应该作为参数或任何东西来自我的android应用程序).现在告诉我怎么做…更具体地说,如何将参数传递给api,或者有一种在java中过滤参数的方法…我已经在google上做了很多工作来找到这个答案…任何帮助或建议都会很好。顺便说一句,谢谢你的rply。还有一件事…它会显示表格,permissiontable,res,因为找不到符号。如果你只是要想找回一条记录,你应该使用tables API,然后从那里进行筛选。对你来说工作量更少。Azure文档网站对此有很多指导。你问的是另一个问题,所以你最好开始一个新的so帖子。好的。但请告诉我为什么会出现“找不到符号”错误。请参阅我以前的评论。嘿,我现在可以知道desig[0]和.eq(x)是什么吗?它们应该被定义为什么?design[0]是一个数组…您应该用大小1来定义它。请参阅编辑的部分。'final String[]design=新字符串[1];'eq(x)等于x,其中x变量包含我希望从数据库中指定的用户名。@kumarkundan我要在表user中添加用户。但我无法添加它。我遇到了类似这样的错误。您能帮我一下吗。java.util.concurrent.ExecutionException:com.microsoft.windowsazure.mobileservices.MobileServiceException:{“message”:“操作失败,出现以下错误:'为'Crazylabap.Models.User'类型的不可为null的成员'CreatedAt'返回了null存储生成的值。'。”}@iDroidExplorer嘿…这是一个不同的问题…开始一个新问题…并给我指向您的问题的链接…我将尝试回答。”