MongoDB est un produit entre une base de données relationnelle et une base de données non relationnelle. Le format de stockage de fichiers est BSON (une extension de JSON). Ici, nous introduisons principalement Java pour implémenter le pool de connexions MongoDB en utilisant le package Mongo-2.7.3.jar. L'implémentation spécifique du code Java est la suivante:
Paramètres de configuration du pool de connexion de la base de données:
/ ** * @ Description: Fichier de configuration du pool de connexion Mongo * / package cn.lulei.mongo.pool; classe publique MongoConfig {Nom d'utilisateur de chaîne statique privée; // nom d'utilisateur String Static Static Pwd; // Mot de passe Private Static String [] Hôte; // Adresse hôte Intatic Static int [] Port; // Adresse du port String statique privé DBNAME; // Nom de base de données Static Static Int Connections PERSPERHOST = 20; // Nombre maximum de connexion par hôte INT INTTATIQUE STATIQU 10; // Nombre de files d'attente de threads privés authentification booléenne statique = false; // est l'authentification requise la chaîne statique publique getUserName () {return username; } public static void SetUsername (String username) {MongoConfig.Username = username; } public static static getpwd () {return pwd; } public static void setPwd (String pwd) {MongoConfig.pwd = pwd; } String statique public [] 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 static 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.threadsallowedToblockForConnectionMultiplier = ThreadSallowEdToBlockForConnectionMultiplier; } public static boolean isAuthentication () {return authentication; } public static void setAuthentication (Boolean Authentication) {MongoConfig.Authentication = Authentication; }} Classe de gestion de pool de connexions de base de données:
/ ** * @ Description: Mongo Database Connection Classe de gestion de pool * / package cn.lulei.mongo.pool; import java.util.arraylist; Importer java.util.list; import com.mongodb.db; import com.mongodb.dbcollection; import com.mongodb.mongo; import com.mongodb.mongooptions; import com.mongodb.readpreference; import com.mongodb.serveraddress; classe publique Mongomanager {Mongo statique privé Mongo; DB Private DB; statique {init (); } / ** * @param dbname * @param nom d'utilisateur * @param pwd * instanciate dbname a db * / public Mongomanager (string dbname, string username, string pwd) {if (dbname == null || "" .equal } db = Mongo.getdb (dbname); if (MongoConfig.isAuthentication () &&! db.isAuthenticated ()) {if (username == null || "" .equals (nom d'utilisateur)) {throw new numberformatexception ("username est null"); } if (pwd == null || "" .equals (pwd)) {throw new NumberFormatexception ("pwd is null"); } db.authenticate (nom d'utilisateur, pwd.tocharArray ()); }} / ** * Instanciate Utilisation des paramètres de configuration * / public Mongomanager () {this (MongoConfig.getDbName (), MongoConfig.getUsername (), MongoConFig.getPwd ()); } / ** * @param TableName * @return * @description: Obtenez le lien vers TableName dbCollection * / public dbCollection getDBCollection (String TableName) {return db.getCollection (tableName); } / ** * @Description: Mongo Connection Pool Initialisation * / private static void init () {if (MongoConfig.Gethost () == null || MongoConfig.Gethost (). Length == 0) {Throw NumberFormatexception ("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 ("La longueur de l'hôte n'est pas égal à la longueur du port"); } essayez {// list list list <ServerAddress> réplicasetseeds = new ArrayList <ServerAddress> (); pour (int i = 0; i <MongoConfig.Gethost (). Length; i ++) {réplicasetseeds.add (new ServerAddress (MongoConfig.Gethost () [i], MongoConfig.getport () [i])); } // Paramètres des paramètres de pool de connexion Mongooptions Options = new Mongooptions (); options.connectionsperhost = mongoConfig.getConnectionsPerHost (); options.threadsallowedOblockForConnectionMultiplier = MongoConfig.getThreadsallowEdOblockForConnectionMultiplier (); Mongo = new Mongo (Replicaset Seeds, Options); // lisible à partir du serveur Mongo.SetReadPreference (readPreference.secondary); } catch (exception e) {e.printStackTrace (); }}} Jetons un coup d'œil à utiliser ce pool de connexion via une classe de test simple ~
/ ** * @ Description: Mongo Test * / package cn.lulei.mongo.test; import Cn.lulei.mongo.pool.mongoconfig; import Cn.lulei.mongo.pool.mongomanager; Classe publique Test {public static void main (String [] args) {// TODO Méthode générée automatique Stub String [] host = {"127.0.0.1"}; int [] port = {27001}; MongoConfig.Sethost (hôte); MongoConfig.Setport (port); MongoConfig.setDBName ("roman"); Mongomanager Mongomanager = New Mongomanager (); Mongomanager.getDBCollection ("Chapitre"); }}Lorsque vous utilisez la classe de gestion ci-dessus, vous n'avez qu'à initialiser la classe MongoConfig. Pour les cas de Mongomanager, vous pouvez utiliser la configuration MongoConfig ou le définir par vous-même. Chaque fois que vous obtenez DBCollection, il vous suffit d'appeler la méthode GetDBCollection (String TableName).
Ce qui précède concerne cet article. J'espère que la description de cet article sera utile à tout le monde d'apprendre la programmation Java.