카우치베이스(Couchbase) Java Insert 하기
안녕하세요.
자바에서 카우치베이스 Object를 만드는 과정을 알아보겠습니다.
동기방식으로 구현한 예제입니다.
기본적으로 Couchbase Docs https://docs.couchbase.com/home/index.html)와
자바 개발자를 위한 가이드문서(JAVA DEVELOPER WORKSHOP) 등을 참고로 구현하였으니 참고바랍니다.
1. 동기(Sync 방식) 단건 Insert
public String insert(String docId, JsonObject content) { String idStr = ""; JsonDocument doc = JsonDocument.create(docId, content); try { JsonDocument result = bucket.insert(doc); idStr = result.id(); } catch (Exception e) { throw new BusinessException("ERROR_CODE", "There was an error creating document"); } return idStr; }
key, value 로 document를 생성하였고, 이를 Bucket 에 insert 합니다.
insert 후 document 의 Key 가 되는 id 가 리턴됩니다.
2. Counter 를 이용한 동기(Sync 방식) 단건 Insert
public String insertUseCounter(String insertJsonStr) { String result = ""; // counter를 이용한 autoNumber 생성 long nextIdNumber = bucket.counter(SAMPLE_COUNTER_KEY, 1).content(); String docId = "hotel_"+nextIdNumber; String testName= "Test " + nextIdNumber + " Name"; JsonObject content = JsonObject.fromJson(insertJsonStr); content.put("id", nextIdNumber); content.put("name", testName);
JsonDocument doc = JsonDocument.create(docId, content); try { JsonDocument insertResult = bucket.insert(doc); result = insertResult.id(); // Insert 된 Document의 key 리턴 } catch (Exception e) { throw new BusinessException("ERROR_CODE", "There was an error creating document"); } return result; }
오라클 시퀀스와 같이 고유값 생성을 위한 카운터를 사용하여 자동증가값을 key 로 활용하는 방법입니다.
오라클 시퀀스와 같이 자동 증가값을 고유 키로 사용하고자 할 경우 위 방법을 사용하면 됩니다.
3. 데이터 만료 옵션 적용
int expiryTime = 10 * 60; // 데이터 만료시간 10분 (단위 second) JsonDocument doc = JsonDocument.create(docId, expiryTime, content);
document 생성시 만료시간을 설정 할 수 있습니다.
Redis 에서 생명주기를 설정 하듯 카우치베이스도 설정이 가능합니다.
다음에는 비동기(Async) Insert 방식을 알아보겠습니다.
감사합니다.
도움이 되셨다면 공감♥ 을 눌러주세요 !