Я использую базу данных MongoDB с Java-ЭИне открывать новую Connexion по каждому запросу MongoDB драйвера Java
У меня есть объект подключения:
public class MongoDb {
static Mongo m;
DB db;
DBCollection coll;
public MongoDb(String collection){
m = null;
try {
if(m==null){
m = new Mongo("127.0.0.1");
}
db = m.getDB("game");
coll = db.getCollection(collection);
} catch (UnknownHostException e) {
System.out.println("Database connexion error");
e.printStackTrace();
}
}
public void save(BasicDBObject bdbo){
coll.insert(bdbo);
}
public void update(BasicDBObject search, BasicDBObject update){
coll.update(search, update);
}
public void remove(BasicDBObject bdbo){
coll.remove(bdbo);
}
public long count(){
long nb = coll.getCount();
return nb;
}
public List<DBObject> getAll(){
List<DBObject> list = new ArrayList<DBObject>();
DBCursor cursor = coll.find().limit(100);
try {
while(cursor.hasNext()) {
list.add(cursor.next());
}
} finally {
cursor.close();
}
return list;
}
public List<DBObject> getAll(String key, String value){
List<DBObject> list = new ArrayList<DBObject>();
BasicDBObject q = new BasicDBObject();
q.append(key, Pattern.compile(value, Pattern.CASE_INSENSITIVE));
DBCursor cursor = coll.find(q).limit(100);
try {
while(cursor.hasNext()) {
list.add(cursor.next());
}
} finally {
cursor.close();
}
return list;
}
public DBObject findOne(BasicDBObject bdbo){
DBObject obj = coll.findOne(bdbo);
return obj;
}
}
Но каждый раз, когда я делаю запросите это, создайте новую связь, и на mongodb будет число макс. связи, поэтому, если я достигну максимального количества запросов, мне нужно перезапустить mongodb
Есть ли способ инициализировать соединение с базой данных всего один раз или Идентификатор проверки завершает соединение?
Благодаря
Ваш код не закроет соединение! Я бы начал с создания _major_ рефакторинга вашего дизайна, чтобы вы использовали что-то вроде «Spring» для ввода соединения. Затем используйте «Фильтр», чтобы открывать и закрывать соединения и вводить их туда, где они требуются. Наконец, сохраните соединения в пуле, чтобы вы фактически не открывали и не закрывали соединения каждый раз. –