-
MongoDB 드라이버를 maven pom.xml에 추가
<!-- MongoDB 드라이버를 maven pom.xml에 추가 -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.0.4</version>
</dependency>
-
MongoDB에 계정 생성 추가 방법
#root 권한으로 계정 생성
use admin;
db.createUser({ user: "ID입력", pwd: "암호입력", roles: [ "root" ] })
#특정 DB만 엑세스 가능한 계정 생성
use DB명 입력;
db.createUser({ user: "ID입력", pwd: "암호입력", roles: [ "readWrite" ] })
-
java 샘플 소스
import com.mongodb.Block;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.connection.ConnectionPoolSettings;
import org.bson.Document;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 몽고DB java 4.0.4 드라이버 사용시 커넥션 소스 샘플
* - 몽고DB 4.2에 데이터 저장하는 샘플소스
* - DB서버는 인증모드와 replica모드가 적용되어 있음
*
* @author 엄승하
*/
public class MongoDBConnectWithAuth {
public static void main(String[] args) {
final String dbAddr = "DB서버주소";
final String dbName = "DB명입력필요";
final String user = "ID입력필요";
final String pwd = "암호입력필요";
final String colNm = "저장할 컬렉션명 입력 필요";
//인증정보
MongoCredential credential = MongoCredential.createCredential(user, dbName, pwd.toCharArray());
//커넥션풀 설정
Block<ConnectionPoolSettings.Builder> poolSetting = builder -> builder.maxWaitTime(4, TimeUnit.SECONDS).maxConnectionIdleTime(10000,
TimeUnit.SECONDS).maxConnectionLifeTime(58, TimeUnit.SECONDS);
//클러스터 또는 replica 설정
List<ServerAddress> serverList = Arrays.asList(new ServerAddress(dbAddr, 27017));
Block<com.mongodb.connection.ClusterSettings.Builder> clusterSettings = builder -> builder.hosts(serverList);
//mongo와 실제 커넥션 생성(mongo client생성)
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder().credential(credential).applyToConnectionPoolSettings(poolSetting).applyToClusterSettings(clusterSettings).build());
int docsCnt = 10000;
List<Document> docs = new ArrayList<>(docsCnt);
for (int i = 1; i <= docsCnt; i++) {
Document doc = new Document();
doc.put("doc_id", i);
doc.put("dt_ms", System.currentTimeMillis());
docs.add(doc);
}
mongoClient.getDatabase(dbName).getCollection(colNm).insertMany(docs); //bulk insert
mongoClient.close(); //자원 반환
}
}
-
결과
-
아래와 같이 데이터가 정상적으로 저장됨을 확인 가능
'NoSql > mongo(또는 tokumx)' 카테고리의 다른 글
mongodb 4.2의 'Zstandard' 압축 효과 확인 (1) | 2020.07.23 |
---|---|
mongo 4.2 설치방법 정리 (0) | 2020.07.10 |
몽고DB replica 재 설정 방법(샘플) (0) | 2019.09.04 |
mongo 4.0 설치방법 정리 (0) | 2018.11.29 |
mongo 3.4 설치방법 정리 (0) | 2017.05.10 |