データベースの使用経験はありませんが、作成中のアプリで使用する必要があるため、MongoDBを選択します。
これですべてが機能していますが、データベースにリクエストを送信するたびに新しいMongoオブジェクトを作成しており、それが間違っていることを理解しています。
だから私はこれを行う正しい方法を尋ねて学びたいのです、私は次のようなコードをクラスに持っていますMongoDbConnnection
:
public class MongoDbConnection {
private static Mongo _mongo;
public static Mongo getMongo()
{
if (_mongo == null) {
try {
_mongo = new Mongo();
} catch (UnknownHostException e) {
_mongo = null;
e.printStackTrace();
} catch (MongoException e) {
_mongo = null;
e.printStackTrace();
}
}
return _mongo;
}
}
そのため、クエリを実行する必要があるたびに、実行してMongo m = MongoDbConnnection.getMongo();
先に進みます。
これは正しいです?
また、接続を閉じるタイミングについても混乱しています。拡張HttpServlet
してGETに応答する別のクラスがあるため、誰かがそのURLを要求するたびに、データベースにクエリを実行して情報を返す必要があります。あるリクエストに応答した直後に閉じた場合、その直後に他の人が再度リクエストした場合はどうなりますか。次に、新しいMongoオブジェクトを再度作成する必要がありますか?
言い換えると、Mongoインスタンスが接続ポーリングを維持していることを知っているので、m.close()を呼び出すと、使用した接続を置き換えるだけですか、それともオブジェクトm
をnullに設定しますか?