O MongoDB é um produto entre um banco de dados relacional e um banco de dados não relacional. O formato de armazenamento de arquivos é BSON (uma extensão do JSON). Aqui, apresentamos principalmente o Java para implementar o Pool de conexões MongoDB usando o pacote Mongo-2.7.3.jar. A implementação específica do código Java é a seguinte:
Parâmetros de configuração do pool de conexão do banco de dados:
/ ***@Descrição: arquivo de configuração do pool de conexão Mongo*/ pacote cn.lulei.mongo.pool; classe pública MongoConfig {String estática privada nome de usuário; // Nome de usuário String estática privada Pwd; // Senha String estática privada [] host; // Endereço do host privado estático int [] porta; // Endereço de porta privado static string dbname; // nome do banco de dados privado static int sexo 10; // Número de filas de threads Autenticação booleana estática privada = false; // é autenticação necessária de string estática pública getUserName () {return username; } public static void setUserName (string userName) {mongoconfig.username = nome de usuário; } 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 porta; } public static void Setport (int [] porta) {mongoconfig.port = porta; } 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 conextionsperhost) {mongoconfig.connectionsperhost = conextionsperhost; } public static int getThreadsallowedToBlockForConnectionMultiplier () {return threadsallowedToBlockForConnectionMultiplier; } public static void setThreadsAllawedTOblockForConnectionMultiplier (int threadsallowedToBlockForConnectionMultiplier) {Mongoconfig.ThreadsAlowedToBlockForConnectionMultiplier = ThreadsallowedToBlockForConnectionMultiplier; } public static boolean isauthentication () {return autentication; } public static void setauthentication (autenticação booleana) {mongoconfig.authentication = autenticação; }} Classe de gerenciamento de pool de conexão de banco de dados:
/ ***@Descrição: Mongo Database Connection Pool Gerenciamento de gerenciamento*/ pacote cn.lulei.mongo.pool; importar java.util.arraylist; importar java.util.list; importar com.mongodb.db; importação com.mongodb.dbcollection; importar com.mongodb.mongo; importar com.mongodb.mongoops; importar com.mongodb.readpreeference; importação com.mongodb.serveraddress; classe pública mongomanager {private estático mongto mongo; DB privado DB; estático {init (); } / ** * @param dbname * @param nome de usuário * @param pwd * instanciado dbname a db * / public Mongomanager (string dbname, string username, string pwd) {if (dbName == null || ".Equals (dbname)) {tlow } db = mongo.getdb (dbname); if (mongoconfig.isauthentication () &&! db.isauthenticated ()) {if (userName == null || "" .equals (nome de usuário)) {lança nova númeroFormatexception ("nome de usuário é nulo"); } if (pwd == null || "" .equals (pwd)) {lança novo númeroFormatexception ("pwd é nulo"); } db.authenticate (nome de usuário, pwd.toCharArray ()); }} / *** instancie usando parâmetros de configuração* / public Mongomanager () {this (mongoconfig.getdbname (), mongoconfig.getUsername (), mongoconfig.getpwd ()); } / ** * @param tableName * @return * @Description: Obtenha o link para tableName dbCollection * / public dbCollection getDbCollection (string tableName) {return db.getCollection (tableName); } / *** @Description: Mongo Connection Pool Inicialização* / private estático void init () {if (mongoconfig.gethost () == null || mongoconfig.gethost (). Length == 0) {throw Numberxception ("host é nulo"); } if (mongoconfig.getport () == null || mongoconfig.getport (). length == 0) {lança new NumberFormatexception ("porta é nula"); } if (mongoconfig.gethost (). length! = mongoconfig.getport (). comprimento) {lança novo númeroFormatexception ("o comprimento do host não é igual ao comprimento da porta"); } tente {// Lista de serviços Lista de serviços <VeverAddress> replicaSeedSeeds = new ArrayList <VerverAddress> (); for (int i = 0; i <mongoconfig.gethost (). comprimento; i ++) {replicasetseeds.add (new ServerAddress (mongoconfig.gethost () [i], mongoconfig.getport () [i])); } // Configurações de parâmetros do pool de conexão Opções de mongões = new Mongooptions (); options.connectionsperhost = mongoconfig.getConnectionsperhost (); options.threadsallowedToBlockForConnectionMultiplier = mongoconfig.getThreadsallowedToBlockForConnectionMultiplier (); Mongo = novo Mongo (REPRICASETSEEDS, OPTIONS); // legível no servidor Mongo.SetReadPreference (readPreference.Secondary); } catch (Exceção e) {e.printStackTrace (); }}} Vamos dar uma olhada em como usar esse pool de conexão através de uma aula de teste simples ~
/ ***@Descrição: Teste Mongo*/ Package cn.lulei.mongo.test; importar cn.lulei.mongo.pool.mongoconfig; importar cn.lulei.mongo.pool.mongomanager; public class Test {public static void main (string [] args) {// TODO Method Auto-Gerated Stub String [] host = {"127.0.1"}; int [] porta = {27001}; Mongoconfig.Sethost (host); Mongoconfig.setport (porta); Mongoconfig.setdbname ("romance"); Mongomanager Mongomanager = New Mongomanager (); mongomanager.getdbcollection ("capítulo"); }}Ao usar a classe de gerenciamento acima, você só precisa inicializar a classe MongoConfig. Para instâncias do MongoManager, você pode usar a configuração do MongoConfig ou defini -lo sozinho. Cada vez que você recebe o DBCollection, você só precisa chamar o método getDbCollection (String tableName).
O acima é tudo sobre este artigo. Espero que a descrição deste artigo seja útil para que todos aprendam a programação Java.