티스토리 뷰
1. 개요 |
MongoLab API를 안드로이드에서 사용하기 위한 라이브러리입니다.
DB와 안드로이드를 보안적 문제 때문에 직접적으로 연결 할 수 없습니다. REST 서비스를 구성할 줄 몰라 구축하였던 MongoDB를 사용을 못하게 되어 대책을 찾다 MongoLab을 찾게 되었고, 이때 만들었던 함수들을 정리해보았습니다.
2. MongoLabClient.java |
MongoLab 홈페이지(http://docs.mlab.com/data-api/)에서 제공하고 있는 API를 이용하여 각 함수를 만들었습니다. 함수 이름은 MongoDB가 제공해주는 Java함수를 따라하였습니다.
1. 경로 설정 : 서비스 시기에 따라 Url이 변경될 수 있기 때문에 사용하기전 홈페이지 API 레퍼런스를 꼭 확인하시기 바랍니다.
2. 생성자 : 생성자에는 꼭 API key가 들어갑니다.
3. Database 이름과 Collection 이름은 대다수 함수 사용에 필요합니다. 설계시 한번 MongoLabClient를 생성하면 재활용 할 수 있게 Database 이름과 Collection 이름을 변경하는 함수로 만들었지만 다 만들고 나니 AsyncTask의 특징상 한번 실행하면 다시 사용 못해 크게 의미없는 함수가 되었습니다.
3. 로그인한 ID가 가지고 있는 Database 이름을 모두 보여줍니다.
4. 특정 Database가 가지고 있는 Collection 이름을 모두 보여줍니다.
5. insert함수들 입니다.
6. Find 관련 함수들입니다.
7. Collection에 들어있는 document의 개수를 세어주는 함수입니다.
8. Update 함수입니다.
9. 삭제함수입니다, 삭제 함수는 Json형태의 데이터로 삭제 대상자를 찾는 구문을 못 만들었습니다.
3. Sample Code |
통신에 대한 내용은 Log.e로 하여 출력되게 하였습니다. 그리고 UI에 대한 코드가 없기 때문에 MainActivity.java만 올렸습니다.
package com.example.pc43.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; public class MainActivity extends AppCompatActivity { private String API_KEY = "_nn1V5xxRxq8MHOKUBN4NHzr18_4WsUq"; private String DATABASE = "whitewhale"; private String COLLECTION = "test"; private MongoLabClient mongoLabClient; JSONObject jsonObject,jsonObject2,jsonObject3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Check Databases and Collections mongoLabClient = new MongoLabClient(API_KEY); mongoLabClient.getDatabaseName(); mongoLabClient = new MongoLabClient(API_KEY); mongoLabClient.getCollectionName(DATABASE); mongoLabClient = new MongoLabClient(API_KEY,DATABASE); mongoLabClient.getCollectionName(); //Insert Example try { jsonObject = new JSONObject(); jsonObject.put("one", "data01"); jsonObject.put("two", "jsonObject"); jsonObject2 = new JSONObject(); jsonObject2.put("three-one", 99); jsonObject2.put("three-two", "BasicDBObject"); jsonObject.put("three", jsonObject2); } catch (JSONException e) { e.printStackTrace(); } mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.insert(jsonObject); try { jsonObject = new JSONObject(); jsonObject.put("one", "data02"); jsonObject.put("two", "jsonObject"); jsonObject.put("three", 33); jsonObject2 = new JSONObject(); jsonObject2.put("one", "data03"); jsonObject2.put("two", "jsonObject"); jsonObject2.put("three", 33); } catch (JSONException e) { e.printStackTrace(); } JSONArray jsonArray= new JSONArray(); jsonArray.put(jsonObject); jsonArray.put(jsonObject2); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.insert(jsonArray); //Count Example try { jsonObject = new JSONObject(); jsonObject.put("three", 33); } catch (JSONException e) { e.printStackTrace(); } mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.count(); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.count(jsonObject); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.count(jsonObject.toString()); //Find Example mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.find(); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.find(jsonObject); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.find(jsonObject.toString()); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.findOne(jsonObject); mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.findOne(jsonObject.toString()); //Update Example try { jsonObject = new JSONObject(); jsonObject.put("name", "data01"); jsonObject2 = new JSONObject(); jsonObject2.put("three", 1111); } catch (JSONException e) { e.printStackTrace(); } mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.update(jsonObject,jsonObject2); try { jsonObject = new JSONObject(); jsonObject.put("name", "data02"); jsonObject2 = new JSONObject(); jsonObject2.put("three", 100); jsonObject3 = new JSONObject(); jsonObject3.put("set", jsonObject2); } catch (JSONException e) { e.printStackTrace(); } mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.update(jsonObject.toString(),jsonObject3); try { jsonObject = new JSONObject(); jsonObject.put("name", "data03"); jsonObject2 = new JSONObject(); jsonObject2.put("three", 100); jsonObject3 = new JSONObject(); jsonObject3.put("inc", jsonObject2); } catch (JSONException e) { e.printStackTrace(); } mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.update(jsonObject,jsonObject3.toString()); //Delete Example, Deletion is only possible with id. mongoLabClient = new MongoLabClient(API_KEY,DATABASE,COLLECTION); mongoLabClient.delete("5938e82bc2ef166bf5111825"); } }
4. Download |
소스코드는 위의 소스코드를 사용하셔도 되고 https://github.com/cckr2/MongoLabClient에서도 다운받을 수 있습니다.
'SoftWare > 안드로이드' 카테고리의 다른 글
GCM 3.0 + PHP 예제 코드 (20) | 2016.05.08 |
---|---|
Android Service + Notification 통합 예제 (35) | 2016.03.04 |
Andorid - Service (12) | 2016.03.04 |
Android - Notification (1) | 2016.03.02 |
Android - SSL 인증서 오류 (javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.) (7) | 2016.03.01 |
- Total
- Today
- Yesterday
- 파일 입출력
- 안드로이드
- 5582
- LISTVIEW
- c언어
- Service
- java
- 자바 입출력
- php
- 파일입출력
- 포켓몬 고
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- 카운터
- Java Decompiler
- vim 설치
- counter
- 서버
- 포켓몬 Go
- 알고리즘
- java 파일 입출력
- 아두이노
- java url
- 인텐트
- android
- 유전 알고리즘
- 유전
- vim
- Notification
- Res
- jad
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |