Android应用程序将在数据库服务器中显示外部数据库(Oracle)的数据。它只能与Web服务(RESTful)一起使用,因此我决定在Java/Java EE本身中开发Web服务。 我不想用PHP或其他一些technologies.Pls建议我继续这一点。如何从Android应用程序访问Oracle数据库。
0
A
回答
0
CouchDB现在非常流行,它与Android很好。 Watch this video.
Apache CouchDB是一个面向文档的数据库,可以使用JavaScript以MapReduce方式进行查询和索引。 CouchDB还提供双向冲突检测和解决的增量复制。
CouchDB提供了一个RESTful JSON API,它可以从任何允许HTTP请求的环境访问。有无数的第三方客户端库可以使您的编程语言更加轻松。
0
public class RestClient {
private ArrayList <NameValuePair> params;
private ArrayList <NameValuePair> headers;
private String url;
private int responseCode;
private String message;
private String response;
public String getResponse() {
return response;
}
public String getErrorMessage() {
return message;
}
public int getResponseCode() {
return responseCode;
}
public RestClient(String url)
{
this.url = url;
params = new ArrayList<NameValuePair>();
headers = new ArrayList<NameValuePair>();
}
public void AddParam(String name, String value)
{
params.add(new BasicNameValuePair(name, value));
}
public void AddHeader(String name, String value)
{
headers.add(new BasicNameValuePair(name, value));
}
public void Execute(RequestMethod method) throws Exception
{
switch(method) {
case GET:
{
//add parameters
String combinedParams = "";
if(!params.isEmpty()){
combinedParams += "?";
for(NameValuePair p : params)
{
String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),”UTF-8″);
if(combinedParams.length() > 1)
{
combinedParams += "&" + paramString;
}
else
{
combinedParams += paramString;
}
}
}
HttpGet request = new HttpGet(url + combinedParams);
//add headers
for(NameValuePair h : headers)
{
request.addHeader(h.getName(), h.getValue());
}
executeRequest(request, url);
break;
}
case POST:
{
HttpPost request = new HttpPost(url);
//add headers
for(NameValuePair h : headers)
{
request.addHeader(h.getName(), h.getValue());
}
if(!params.isEmpty()){
request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
}
executeRequest(request, url);
break;
}
}
}
private void executeRequest(HttpUriRequest request, String url)
{
HttpClient client = new DefaultHttpClient();
HttpResponse httpResponse;
try {
httpResponse = client.execute(request);
responseCode = httpResponse.getStatusLine().getStatusCode();
message = httpResponse.getStatusLine().getReasonPhrase();
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
response = convertStreamToString(instream);
// Closing the input stream will trigger connection release
instream.close();
}
} catch (ClientProtocolException e) {
client.getConnectionManager().shutdown();
e.printStackTrace();
} catch (IOException e) {
client.getConnectionManager().shutdown();
e.printStackTrace();
}
}
private static String convertStreamToString(InputStream is) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
1
依赖于Web服务。它只是RESTful XML吗? JAX-WS? JSON?不管怎样,它应该像使用HTTP套接字调出并解析响应一样简单。
创建Web服务按照下面的链接
使用使用了HTTPClient
public static String hitService(String host, int port, String path, String postBody) throws IOException {
HttpHost target = new HttpHost(host, port);
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(path);
HttpEntity results = null;
try {
HttpResponse response=client.execute(target, get);
results = response.getEntity();
return EntityUtils.toString(results);
} catch (Exception e) {
throw new RuntimeException("Web Service Failure");
} finally {
if (results!=null)
try {
results.consumeContent();
} catch (IOException e) {
// empty, Checked exception but don't care
}
}
}
+0
感谢您的回复。实际上,我在JSP,Servlet和Struts中有知识。现在我想设计一个Web服务,以便从Android应用程序访问数据库服务器中的Oracle数据库。我想知道如何开发Web服务。 – Mukthi
相关问题
- 1. 如何从Perl访问Oracle数据库?
- 2. 如何从Jquery Mobile应用程序访问远程数据库?
- 3. Android应用程序如何访问集中式数据库
- 4. 从Android应用程序访问MS SQL数据库
- 5. 从Android应用程序访问外部数据库
- 6. 从.NET应用程序Android数据库访问
- 7. 如何从iPhone应用程序访问Xcode数据库
- 8. 如何从移动应用程序访问WordPress数据库?
- 9. 如何从另一个应用程序访问django数据库
- 10. 如何从ASP.NET应用程序访问数据库?
- 11. 如何从ASP.Net应用程序远程连接oracle数据库
- 12. 如何从PostgreSQL数据库访问Oracle数据库的源
- 13. 如何从Android应用程序中的服务访问sqlite数据库
- 14. 如何从Android的库类访问应用程序模块类?
- 15. 如何从数据库访问其他Web应用程序的数据
- 16. 从iPhone应用程序远程访问SQL数据库
- 17. 的Android ADB访问应用程序数据库,而根
- 18. 从C#访问Oracle数据库#
- 19. 从Visual Studio 2008访问Oracle数据库
- 20. 如何让WPF应用程序访问在线数据库?
- 21. 如何访问多个数据库中轨3.1.0应用程序?
- 22. 如何让JPA应用程序访问不同的数据库?
- 23. 如何从Android应用程序写入远程数据库
- 24. MS访问Oracle数据库
- 25. 访问oracle数据库
- 26. 从2个应用程序访问相同的SQLite数据库
- 27. 从移动应用程序访问WordPress数据库
- 28. 无法从Java应用程序访问mysql数据库
- 29. 从新应用程序访问现有数据库
- 30. 从iOS应用程序访问数据库
你看看SOAP? – Kris
我对它进行了搜索。我发现只有RESTful支持Android,但SOAP纯粹是基于XML .Android无法获得XML格式的响应。 – Mukthi