android 访问 OData

前几天和老师一起做了一个点餐的系统,分为PC端和移动平板端,我主写了Android客户端模块,服务器是C#写的,数据库服务器则使用了OData,本人对C#也不熟悉,所以对这个就不做介绍了,有兴趣的可以去这两个网站,有详细介绍[url]http://www.odata.org/[/url],还有[url]http://msdn.microsoft.com/en-us/library/ff478141.aspx[/url]。
使用了一下感觉特别的舒服,使用不同的请求方式就可以对数据库进行CRUD的操作,这个相当方便哦,基本没有什么业务之类的,使用Struts,配置不知道写了多少行,ODATA只要服务架起来,想干什么就干什么了,不过,为了数据安全,还是建议用C/S模式比较和适。
由于请求比较繁琐,所以自己就封装了几个工具类来操作网络这一块,在这里分享下自己整理后的东西。
先介绍一下如何使用:
首先,创建实例:
private String host = "http://222.192.238.22:9000/wdsdiancan.svc";
private ODataCustomer customer = ODataCustomer.create(host);

这个就比较好理解了,主机地址,数据库;有了实例,就可以操作了。
1.查询数据(GET请求):
//从 DB_DISH表里,查询主键为 70001 的记录
customer.get("db_dish", "70001");

简单明了,相当的方便,返回的数据是JSON,使用工具类解析一下,数据就出来了。
如果觉得每次拿所有的数据太繁琐了,那就用这个方法:
//从 DB_DISH表里,查询主键为 70001记录的name字段的值
customer.get("db_dish", "70001", new String[] { "name" });

是不是感觉有点小兴奋呢?呵呵,这个很好用的。
如果想拿多条的数据就用下面的方法:
//把DB_DISH表里的记录全部返回
customer.list("db_dish");

同样是JSON数据,放在一个JSONARRAY里的,你可以根据你的情况来解析的。
//把DB_DISH表里的全部记录的NAME字段值返回
customer.list("db_dish", new String[] { "name" });

好了,如果你觉得这样查询还不爽,那看看下面的:
//把DB_DISH表里的全部记录的type 字段值 为 1 的记录全部返回
customer.list("db_dish", "type eq 1");

好了这个够清楚了吧!还支持分页,最大值最小值,还有很多的函数可供使用
我就抛砖引玉了,上面的两个网址讲的想当的清楚。
更多的方法请查看API。

2.更新数据(MERGE || PUT 请求)
MERGE请求只更新你要更新的列(合并),而PUT是替换,
	Parameters parameters = new Parameters();
parameters.put("name", "酸菜");
//将DB_DISH表里 主键为 70001 的菜品名称更新为 酸菜
customer.update("db_dish", "70001", parameters);

这就是最简单的更新,还可以这么写:
//将db_dishorder里记录Id为1001的数据 state 字段更新为 1 (已下单)
customer.update("db_dishorder", 1001, new String[]{"state"}, new String[]{"1"});


3. 删除数据(Delete 请求)
//将db_dishorder里记录Id为1001的记录删除
customer.delete("db_dishorder", 1001);


4. 添加数据(POST 请求)
这个就不解释了吧。。。
Parameters params = new Parameters();
params.put("name", "酸菜").put("pinyin", "SUANCAI").put("price", "35.00");
customer.save("db_dish", params);

添加数据后会返回添加的记录,主键是自动生成的就可以从这里获取啦。

增删改查全在这里了,感觉好爽。

呵呵,自己对这个服务还不熟悉,只看了请求的方法,分装了这几个类,下面公布源码和DOC
我是在Android2.3下开发的这个工具类,类不多,有兴趣的可以看下,基本一看就懂的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值