Удобно, что это также позволяет вам регистрировать весь ваш SQL из единого набора кода.

тандартный раздел кода для использования JDBC ...

Connection conn = getConnection(...);
Statement  stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
                                                ResultSet.CONCUR_READ_ONLY);
ResultSet  rset = stmt.executeQuery (sqlQuery);

// do stuff with rset

rset.close(); stmt.close(); conn.close();

Вопрос 1: при использовании пула соединений нужно ли закрывать соединение в конце? Если так, разве цель объединения не потеряна? И если нет, то как DataSource узнает, когда конкретный экземпляр Connection освобожден и может быть повторно использован? Я немного запутался в этом, любые указатели оценены.

Вопрос 2: Является ли следующий метод чем-то близким к стандартному? Похоже на попытку получить соединение из пула, и если DataSource не может быть установлен, используйте старомодный DriverManager. Мы даже не уверены, какая часть исполняется во время выполнения. Повторяя вопрос выше, следует ли закрыть соединение, выходящее из такого метода?

Спасибо, - ср.

synchronized public Connection getConnection (boolean pooledConnection)
                                                        throws SQLException {
        if (pooledConnection) {
                if (ds == null) {
                        try {
                                Context envCtx = (Context)
                                        new InitialContext().lookup("java:comp/env");
                                ds = (DataSource) envCtx.lookup("jdbc/NamedInTomcat");
                                return ds.getConnection();
                        } catch (NamingException e) {
                                e.printStackTrace();
                }}
                return (ds == null) ? getConnection (false) : ds.getConnection();
        }
        return DriverManager.getConnection(
                "jdbc:mysql://"+ipaddy+":"+dbPort +"/" + dbName, uName, pWord);
}

Изменить: я думаю, что мы получаем пул соединения, так как мы не видим трассировки стека.

Ответы на вопрос(3)

Ваш ответ на вопрос