私は、Google Cloud SQL で GAE を使用するプロジェクトに取り組んでいます。このチュートリアルhttps://developers.google.com/appengine/docs/java/cloud-sql/developers-guide#use_with_langに従って、データベースに接続する方法を学びましたが、これまでのところ、ドライバーの登録を除いてすべて問題ありません部。私の直感では、ドライバーは 1 回だけ登録する必要がありますが、どこでいつ登録するのが最適なのかわかりません。インスタンスが開始されたときにいくつかのコードを実行できるgaeの初期化機能のようなものはありますか? それとも、リソースをロードできる xml ファイルでしょうか?
これまでのところ、私のコードは次のようになります。
try {
// Connect to the db.
DriverManager.registerDriver(new AppEngineDriver());
Connection c = DriverManager.getConnection(JDBC_CON_STRING);
// Fetch rows
String sql = "SELECT * FROM test";
ResultSet rs = c.createStatement().executeQuery(sql);
ArrayList<BaseUser> users = new ArrayList<BaseUser>();
while(rs.next()){
BaseUser u = new BaseUser();
u.setFirstname(rs.getString("firstname"));
u.setLastname(rs.getString("lastname"));
users.add(u);
}
rs.close();
c.close();
// Print the users in the console.
for (BaseUser user : users) {
logger.info("Firstname: " + user.getFirstname() + ", Lastname: " + user.getLastname());
}
} catch (SQLException e) {
e.printStackTrace();
}
最初の行を削除して、一度だけ実行される場所に配置したいので、SQL トランザクションを必要とするリクエストを受け取るたびに、DriverManager.getConnection(...) を呼び出すだけです。
ありがとう、ロドリゴ。