MongoDBは、リレーショナルデータベースと非関連データベースの間の製品です。ファイルストレージ形式はBSON(JSONの拡張機能)です。ここでは、Mongo-2.7.3.Jarパッケージを使用してMongodb接続プールを実装するためにJavaを主に導入します。特定のJavaコードの実装は次のとおりです。
データベース接続プール構成パラメーター:
/ ***@説明:Mongo接続プール構成ファイル*/パッケージCn.lulei.mongo.pool;パブリッククラスmongoconfig {private static string username; // username private static string pwd; // password private static string [] hostアドレスprivate static int [] port; // database name name name private static intic connectionsperhost = 20 ;/接続の最大数10; //スレッドキューの数private static boolean認証= false; //は認証が必要ですpublic static string getUsername(){return username; } public static void setUsername(string username){mongoconfig.username = username; } public static string getpwd(){return pwd; } public static void setPwd(string 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 getThreadSallowedToBlockForConnectionMultiplier(){return threadsallowedtoblockforconnectionMultiplier; } public static void setThreadSallowedToBlockForConnectionMultiplier(int threadsallowedtoblockforconnectionMultiplier){mongoconfig.threadsallowedtoblockforconnectionmultipiriplier } public static boolean isauthentication(){return authentication; } public static void setauthentication(boolean認証){mongoconfig.authentication = authentication; }}データベース接続プール管理クラス:
/ ***@説明:Mongo Database Connection Pool Management Class*/ Package Cn.lulei.mongo.pool; java.util.arraylistをインポートします。 java.util.listをインポートします。 com.mongodb.dbをインポートします。 com.mongodb.dbcollectionをインポートします。 com.mongodb.mongoをインポートします。 com.mongodb.mongooptionsをインポートします。 com.mongodb.readpreferenceをインポートします。 com.mongodb.serveraddressをインポートします。 Public Class Mongomanager {Private Static Mongo Mongo;プライベートDB DB; static {init(); } / ** * @param dbname * @param username * @param pwd * instantiate dbname a db * / public mongomanager(string dbname、string username、string pwd){if(dbname == null || ""。 } db = mongo.getdb(dbname); if(mongoconfig.isauthentication()&&!db.isauthenticated()){if(username == null || "" .equals(username)){throw new NumberformateXception( "username is null"); } if(pwd == null || "" .equals(pwd)){throw new NumberformateXcection( "pwd is null"); } db.authenticate(username、pwd.tochararray()); }} / ***構成パラメーターを使用してインスタンス化* / public mongomanager(){this(mongoconfig.getdbname()、mongoconfig.getusername()、mongoconfig.getpwd()); } / ** * @param tableName * @return * @description:TableName dbcollection * / public dbcollection getDBCollection(String TableName)へのリンクを取得{return db.getCollection(tableName); } / *** @description:mongo接続プール初期化* / private static void init(){if(mongoconfig.gethost()= null || mongoconfig.gethost()。length == 0){throw new numberformatexcection( "host is null"); } if(mongoconfig.getport()== null || mongoconfig.getport()。length == 0){throw new NumberformateXception( "PORT IS NULL"); } if(mongoconfig.gethost()。length!= mongoconfig.getport()。length){throw new 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(); options.connectionsperhost = mongoconfig.getConnectionSperhost(); options.threadSallowedToBlockForConnectionMultiplier = mongoconfig.getThreadSallowedToBlockForConnectionMultipiLier(); Mongo = new Mongo(Replicasetseeds、options); //サーバーMongo.setReadPreference(ReadPreference.Secondary)から読み取り可能。 } catch(Exception e){e.printstacktrace(); }}}簡単なテストクラスを介してこの接続プールを使用する方法を見てみましょう〜
/ ***@説明:Mongo Test*/ Package Cn.lulei.Mongo.test; cn.lulei.mongo.pool.mongoconfigをインポートします。 cn.lulei.mongo.pool.mongomanagerをインポートします。 public class test {public static void main(string [] args){// todo auto-fenated method stust string [] host = {"127.0.0.1"}; int [] port = {27001}; mongoconfig.sethost(host); mongoconfig.setport(ポート); mongoconfig.setdbname( "Novel"); Mongomanager Mongomanager = new Mongomanager(); mongomanager.getDbCollection( "章"); }}上記の管理クラスを使用する場合、Mongoconfigクラスを初期化するだけです。 Mongomanagerの場合は、Mongoconfig構成を使用したり、自分で設定したりできます。 dbcollectionを取得するたびに、getDBCollection(String TableName)メソッドを呼び出す必要があります。
上記はこの記事に関するすべてです。この記事の説明が、Javaプログラミングを学ぶために誰にとっても役立つことを願っています。