카우치베이스(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 방식을 알아보겠습니다.

감사합니다.


도움이 되셨다면 공감을 눌러주세요 !

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기