DBから列名を取得するクエリがあります。これらの列名は、リクエストまたはセッションごとに変更されることはありません。したがって、各リクエストで無駄なクエリを実行しないようにするために、アプリケーションがデプロイされたときにこのクエリを1回実行し、アプリケーションList<String>
のライフサイクルの残りの期間(再度デプロイされるまで)結果を保持したいと思います。
List<String>
サービスレイヤーでファイナルを使用できるようにするには、どうすればこれを実現できますか?
デプロイ時にクエリを実行するのではなく、これを行うためのより良い方法がある場合は、別の方法を提案してください。
現在、私はこれを持っています:
public List<String> fetchColNames (String tableName) {
String query = "SELECT Upper(column_name) FROM information_schema.columns WHERE table_name = ?";
List<String> cols = getJdbcTemplate().query(query, new Object[] {tableName}, new RowMapper<String>() {
public String mapRow(ResultSet rs, int rowNum) throws SQLException {
return rs.getString(1);
}
});
return cols;
}