- Считать источник данных MySQL из JNDI
- Использовать этот источник данных JNDI для настроить пул соединений DBCP, а также мое соединение JDBC.
- Запустить оператор SQL с использованием JDBC.
- Вежливо закрыть (разблокировать соединение обратно в пул, закрыть что-нибудь еще и т. д.)
Вот моя лучшая попытка:
Код: Выделить всё
try {
// 1. Obtain the dbLogger datasource from JNDI.
Context context = new InitialContext();
DataSource logDatabaseDS = (DataSource)context.lookup(logDatabaseJNDI);
// 2. Configure the connection pool with my JNDI datasource.
// HOW?
// 3. Obtain a connection from the pool.
// HOW?
// 4. Use this connection to fire a JDBC INSERT.
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("urlFromJNDI",
"userFromJNDI", "passwordFromJNDI");
PreparedStatement statement = conn.prepareStatement(InsertSQL);
statement.setString(1, appName);
statement.setLong(2, timestamp);
statement.setString(3, logLevel);
statement.executeUpdate();
// 5. Release the borrowed connection back to the pool.
// HOW?
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
- Как настроить пул DBCP с использованием свойств, заданных JNDI (таких как maxIdle, maxWait и т. д.). )
- Эффективно заимствовать соединение из пула DBCP (чтобы этот код мог запускаться десятки/сотни раз в секунду и не терять ресурсы)
< li>Вставьте URL-адрес строки подключения, имя пользователя и пароль из источника данных JNDI в метод DriverManager.getConnection(...) - Вежливо/правильно освободить соединение обратно в пул.
Подробнее здесь: https://stackoverflow.com/questions/175 ... by-example
Мобильная версия