MongoDB는 관계형 데이터베이스와 비 관계형 데이터베이스 사이의 제품입니다. 파일 스토리지 형식은 BSON (JSON 확장)입니다. 여기서 우리는 주로 Mongo-2.7.3.jar 패키지를 사용하여 MongoDB Connection Pool을 구현하기위한 Java를 소개합니다. 특정 Java 코드 구현은 다음과 같습니다.
데이터베이스 연결 풀 구성 매개 변수 :
/ ***@description : Mongo 연결 풀 구성 파일*/ 패키지 cn.lulei.mongo.pool; 공개 클래스 mongoconfig {private static string username; // 사용자 이름 개인 정적 문자열 pwd; // 비밀번호 개인 정적 문자열 [] 호스트 주소 주소 private static int [] 포트; // 포트 주소 비공개 정적 문자열 dbname; // 데이터베이스 이름 private int int connectionsperhost = 20; // private intatic intstatic intatic of intatic intstation of intatic intaticeedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoedtoed. 10; // 스레드 큐의 수 개인 정적 부울 인증 = false; // 인증 필수 공개 정적 문자열 getUserName () {return username; } public static void setusername (String username) {mongoconfig.username = username; } public static string getPwd () {return pwd; } public static void setpwd (문자열 pwd) {mongoconfig.pwd = pwd; } public static string [] gethost () {return host; } public static void sethost (String [] host) {mongoconfig.host = host; } public static int [] getport () {return port; } public static void setport (int [] port) {mongoconfig.port = port; } public static string getDbname () {return dbname; } public static void setdbname (String dbname) {mongoconfig.dbname = dbname; } public static int getConnectionSperHost () {return ConnectionSperHost; } public static void setconnectionsperhost (int connectionsperhost) {mongoconfig.connectionsperhost = ConnectionSperHost; } public static int getThreadsLownallowEdToBlockForConnectionMultIpLier () {returnsLownallowEdToBlockForConnectionMultiplier; } public static void setThreadsLownallowEdStreadToBlockForConnectionMultiplier (int threadSallowedToBlockforConnectionMultiplier) {mongoconfig.threadsallowedToBlockforConnectionMultiplier = ThreadSallowEdToBlockForConnectionMultiplier; } public static boolean isauthentication () {반환 인증; } public static void setAuthentication (부울 인증) {mongoconfig.authentication = Authentication; }} 데이터베이스 연결 풀 관리 클래스 :
/ ***@설명 : Mongo 데이터베이스 연결 풀 관리 클래스*/ 패키지 cn.lulei.mongo.pool; java.util.arraylist 가져 오기; Java.util.list 가져 오기; com.mongodb.db import; com.mongodb.dbcollection import; import com.mongodb.mongo; com.mongodb.mongooptions 가져 오기; import com.mongodb.readpreference; com.mongodb.serveraddress import; 공개 클래스 Mongomanager {Private Static Mongo Mongo; 개인 DB DB; 정적 {init (); } / ** * @param dbname * @param username * @param pwd * instantiate dbname a db * / public mongomanager (문자열 dbname, 문자열 사용자 이름, 문자열 pwd) {if (dbname == null || ". } db = mongo.getdb (dbname); if (mongoconfig.isauthentication () &&! db.isauthenticated ()) {if (username == null || "".equals (username)) {wrach new numberformatexception ( "username is null"); } if (pwd == null || "".equals (pwd)) {wrach numberformatexception ( "pwd is null"); } db.authenticate (username, pwd.tochararray ()); }} / *** 구성 매개 변수를 사용하여 인스턴스화* / public mongomanager () {this (mongoconfig.getdbname (), mongoconfig.getusername (), mongoconfig.getpwd ()); } / ** * @param tableName * @return * @description : tablemename dbcollection * / public dbcollection getDbcollection (String tablename) {return db.getCollection (tableName); } / *** @description : Mongo Connection Pool 초기화* / private static void init () {if (mongoconfig.gethost () == null || mongoconfig.gethost (). length == 0) {새 numberformatexception ( "host is null"); } if (mongoconfig.getport () == null || mongoconfig.getport (). length == 0) {wrach numberformatexception ( "포트 is null"); } if (mongoconfig.gethost (). length! = mongoconfig.getport (). length) {wrach numberformatexception ( "호스트 길이는 포트 길이가 아닙니다"); } try {// 서비스 목록 목록 <ServerAddress> ReplicAsetSeeds = new ArrayList <ServerAddress> (); for (int i = 0; i <mongoconfig.gethost (). length; i ++) {replicasetseeds.add (new serverAddress (mongoconfig.gethost () [i], mongoconfig.getport () [i]); } // 연결 풀 매개 변수 설정 Mongooptions Options = New Mongooptions (); 옵션 .connectionsperhost = mongoconfig.getConnectionSperHost (); 옵션 .threadsallowedToBlockForConnectionMultiplier = mongoconfig.getThreadsallowedToBlockForConnectionMultiplier (); Mongo = New Mongo (ReplicasetSeeds, 옵션); // 서버 mongo.setReadPreference (readPreference.Secondary)에서 읽을 수 있습니다. } catch (예외 e) {e.printstacktrace (); }}} 간단한 테스트 클래스를 통해이 연결 풀을 사용하는 방법을 살펴 보겠습니다 ~
/ ***@description : mongo test*/ package cn.lulei.mongo.test; cn.lulei.mongo.pool.mongoconfig import; cn.lulei.mongo.pool.mongomanager import; 공개 클래스 테스트 {public static void main (String [] args) {// todo 자동 생성 메소드 스터브 문자열 [] host = { "127.0.0.1"}; int [] port = {27001}; Mongoconfig.sethost (호스트); Mongoconfig.setport (포트); mongoconfig.setdbname ( "소설"); Mongomanager Mongomanager = New Mongomanager (); Mongomanager.getDBCollection ( "챕터"); }}위의 관리 클래스를 사용하는 경우 Mongoconfig 클래스 만 초기화하면됩니다. Mongomanager의 경우 Mongoconfig 구성을 사용하거나 직접 설정할 수 있습니다. dbcollection을 얻을 때마다 getDBCollection (String TableName) 메소드 만 호출하면됩니다.
위는이 기사에 관한 것입니다. 이 기사의 설명이 모든 사람이 Java 프로그래밍을 배우는 데 도움이되기를 바랍니다.