Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

joined_document

.pdf
Скачиваний:
4
Добавлен:
20.03.2016
Размер:
1.84 Mб
Скачать

Пример реализации

final public class ConnectionPool {

/* ... */ static {

Class.forName("com.mysql.jdbc.Driver");

}

/* ... */

}

Пример реализации

final public class ConnectionPool {

/* ... */ static {

try {

Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) {

System.err.println("ERROR");

}

}

/* ... */

}

7

Пример реализации

final public class ConnectionPool {

/* ... */ static {

try {

Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) {

System.exit(0);

}

}

/* ... */

}

Пример реализации

public void init() throws DataException { try {

Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) {

throw new DataException(e);

}

}

8

Пример реализации

public void freeConnection(Connection c) {

try {

connections.put(c);

} catch(InterruptedException e) {

System.err.println("ERROR");

}

}

Недостатки реализации

Когда необходимо подключение, приходится явно обращаться к пулу

Необходимо знать интерфейс пула соединений для получения и возврата соединения

Хранение подключений и управление подключениями концентрируются в одном классе

9

Другие идеи реализации

Получать подключение из пула через известный интерфейс DriverManager-а

Необходимо знать интерфейс пула соединений для получения и возврата соединения

Хранение подключений и управление подключениями концентрируются в одном классе

Другие идеи реализации

Получать подключение из пула через известный интерфейс DriverManager-а

Декорировать соединение своим классом, метод close которого возвращает декорируемое подключение в пул

Хранение подключений и управление подключениями концентрируются в одном классе

10

Другие идеи реализации

Получать подключение из пула через известный интерфейс DriverManager-а

Декорировать соединение своим классом, метод close которого возвращает декорируемое подключение в пул

Хранилище подключений реализовать в виде собственного JDBC-драйвера

11

Журналирование

событий

Logger

public class Logger {

private BufferedWriter writer;

private Logger() { ... }

private static Logger logger =

new Logger();

1

Logger

synchronized private void write( Level level,

String message) {

writer.write(...);

}

Logger

public static void error(String msg) { logger.write(Level.ERROR, message);

}

public static void warning(String msg) { logger.write(Level.WARNING, message);

}

public static void info(String msg) { logger.write(Level.INFO, message);

}

public static void debug(String msg) { logger.write(Level.DEBUG, message);

}

2

Logger

private Level level = Level.ERROR;

synchronized public static void setLevel(Level level) {

logger.level = level;

}

}

3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]