Скопируйте код кода следующим образом:
пакет com.groundhog.codingmouse;
импортировать java.sql.Connection;
импортировать java.sql.DriverManager;
импортировать java.sql.PreparedStatement;
импортировать java.sql.ResultSet;
импортировать java.sql.SQLException;
/**
* Класс управления базой данных
* @author CodingMouse
*20.02.2009 г.
*/
публичный финальный класс DBManager {
/**
* Объект подключения к базе данных
*/
частное соединение dbConnection = null;
/**
* Объект выполнения команд базы данных
*/
частный ReadedStatement preStatement = null;
/**
* Объект набора результатов
*/
частный ResultSet rsSet = null;
/**
* Номер версии драйвера базы данных
*/
частная статическая строка driverVersion = null;
/**
* Строковые константы имени пользователя и пароля для входа на сервер базы данных (значения по умолчанию: «sa»)
*/
частная статическая строка базы данныхUser = "sa";
частная статическая строка dataPassword = "sa";
/**
* Строковая константа полного имени класса драйвера базы данных.
*/
частная статическая финальная строка
DRIVER_CLASS_SQLSERVER2000 =
"com.microsoft.jdbc.sqlserver.SQLServerDriver" // SQL
Прямое подключение к серверу 2000
частная статическая финальная строка
DRIVER_CLASS_SQLSERVER2005 =
"com.microsoft.sqlserver.jdbc.SQLServerDriver" // SQL
Прямое подключение к серверу 2005
частная статическая финальная строка
DRIVER_CLASS_BRIDGECONNECT = "sun.jdbc.odbc.JdbcOdbcDriver";
// Мостовое соединение ODBC
/**
* Константы строки подключения к базе данных.
*/
частная статическая финальная строка
БАЗА ДАННЫХ_URL_SQLSERVER2000 =
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=stuD
B"; // прямое соединение с SQL Server 2000
частная статическая финальная строка
БАЗА ДАННЫХ_URL_SQLSERVER2005 =
"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stuDB";
// Прямое соединение с SQL Server 2005
частная статическая финальная строка
DATABASE_URL_BRIDGECONNECT = "jdbc:odbc:stuDBSource";
// Мостовое соединение ODBC
/**
* Определить статические переменные экземпляра самого класса (применимо к одноэлементным приложениям в режиме [ware])
*/
частный статический DBManager ConnectionManager = null;
/**
* Приватизированная конструкция по умолчанию (применяется к приложениям в режиме Singleton [ware] для предотвращения создания экземпляров классов напрямую с использованием нового ключевого слова)
*/
частныйDBManager() {
супер();
}
/**
* Метод получения экземпляра класса управления подключением к базе данных (применение режима Singleton [ware])
* @param version Номер версии драйвера базы данных, значение: (версия =
2000 | версия = 2005 | версия = ODBC)
* @param user имя пользователя для входа на сервер базы данных
* @param пароль пароль для входа на сервер базы данных
* @return объект управления подключением к базе данных
* Исключение @throws Exception Ошибка параметра
*/
общедоступный статический DBManager getInstance(
Строковая версия,
Строковый пользователь,
Строковый пароль)
выдает исключение {
if (!(версия == "2000" || версия == "2005"
|| версия == "odbc")) {
throw new Exception("Номер версии драйвера базы данных неверен, значение может быть только "2000/2005/odbc"!");
}
//Сохраняем номер версии драйвера базы данных
DriverVersion = версия;
if (user == null || user.equals("")) {
throw new Exception("Имя пользователя для входа на сервер базы данных не может быть пустым!");
}
//Сохраняем имя пользователя и пароль для входа на сервер базы данных
пользователь базы данных = пользователь;
Пароль базы данных = пароль;
// Применяем шаблон Singleton [ware], чтобы гарантировать, что сам класс имеет только один экземпляр
если (connectionManager == ноль) {
ConnectionManager = новый DBManager();
}
// Возвращаем экземпляр самого класса
вернуть менеджер соединений;
}
/**
* Метод получения подключения к базе данных
* @return объект подключения к базе данных
*/
частное соединение getConnection() {
пытаться {
Class.forName(
версия драйвера ==
"2000"
?
DRIVER_CLASS_SQLSERVER2000
: (driverVersion ==
"2005"
?
DRIVER_CLASS_SQLSERVER2005
:
DRIVER_CLASS_BRIDGECONNECT));
this.dbConnection =
DriverManager.getConnection(
версия драйвера ==
"2000"
?
DATABASE_URL_SQLSERVER2000
: (driverVersion ==
"2005"
?
DATABASE_URL_SQLSERVER2005
:
DATABASE_URL_BRIDGECONNECT),
Пользователь базы данных,
Пароль базы данных);
} catch (ClassNotFoundException ex) {
System.err.println("SQL-сервер не найден
" + driverVersion + "Класс драйвера базы данных: " + ex.getMessage());
//Выводим информацию о стеке исключений на консоль
// ex.printStackTrace();
} catch (исключение ex) {
System.err.println("Получить ошибку подключения к базе данных: " + ex.getMessage());
//Выводим информацию о стеке исключений на консоль
// ex.printStackTrace();
}
// Возвращаем объект подключения к базе данных
вернуть this.dbConnection;
}
/**
* Метод получения объекта выполнения команды базы данных.
* @param sql Строка оператора сборки команды SQL, которая должна быть выполнена
* @return объект выполнения команды базы данных
*/
частный ReadedStatement getPreparedStatement
(Строка SQL) {
пытаться {
//Создаем объект выполнения команд базы данных на основе полученного объекта подключения к базе данных
this.preStatement = getConnection
().prepareStatement(sql);
} catch (исключение ex) {
System.err.println("Ошибка при получении объекта выполнения команды базы данных: " + ex.getMessage());
//Выводим информацию о стеке исключений на консоль
// ex.printStackTrace();
}
// Возвращаем объект выполнения команды базы данных
вернуть this.preStatement;
}
/**
* Выполнить оператор обновления (Вставка|Обновление|Удалить)
* @param sql Строка оператора сборки команды SQL, которая должна быть выполнена
* @return количество затронутых строк
*/
public int ExecuteUpdate (String sql) {
пытаться {
// Очищаем исходное содержимое объекта набора результатов
this.rsSet = ноль;
//Выполняем оператор и возвращаем количество затронутых строк
верните этот.getPreparedStatement
(sql).executeUpdate();
} catch (SQLException e) {
System.err.println("Ошибка обновления данных:" +
е.getMessage());
вернуть 0;
}окончательно{
//Закрываем ресурсы подключения к базе данных
закрытьDBResource();
}
}
/**
* Выполнить оператор запроса (Выбрать)
* @param sql Строка оператора сборки команды SQL, которая должна быть выполнена
* @return объект набора результатов после запроса
*/
public ResultSet ExecuteQuery (String sql) {
пытаться {
// Очищаем исходное содержимое объекта набора результатов
this.rsSet = ноль;
//Выполняем оператор sql для получения набора результатов
this.rsSet =
this.getPreparedStatement(sql).executeQuery();
} catch (SQLException e) {
System.err.println("Ошибка данных запроса:" +
е.getMessage());
}
// Возвращаем объект набора результатов
верните этот.rsSet;
}
/**
* Получить количество записей в наборе результатов, возвращенном после выполнения указанного оператора SQL.
* @param sql Строка оператора сборки команды SQL, которая должна быть выполнена
* @return Количество записей, полученных по результатам запроса.
*/
public int getResultSetCount (String sql) {
//Сохраняем переменную-счетчик, которая возвращает количество строк, записанных после выполнения указанного оператора SQL.
число интервалов = 0;
пытаться {
// Очищаем исходное содержимое объекта набора результатов
this.rsSet = ноль;
//Выполняем оператор sql для получения набора результатов
this.rsSet = this.getPreparedStatement
(sql).executeQuery();
// Перебираем набор результатов и накапливаем счетчик
в то время как (this.rsSet.next()) {
считать++;
}
} catch (SQLException e) {
е.printStackTrace();
}
количество возвратов;
}
/**
* Закрыть ресурсы подключения к базе данных (включая объекты набора результатов, объекты выполнения команд и объекты подключения).
*/
общественный недействительный closeDBResource () {
пытаться {
закрытьResultSet();
закрытьPreparedStatement();
закрытьСоединение();
} catch (SQLException sqlEx) {
System.err.println(sqlEx.getMessage
());
//Выводим информацию о стеке исключений на консоль
// sqlEx.printStackTrace();
}
}
/**
* Метод закрытия объекта набора результатов.
* @throws SQLException
*/
Private void closeResultSet() выдает SQLException {
пытаться {
если (this.rsSet != ноль) {
это.rsSet.close();
this.rsSet = ноль;
}
} catch (SQLException sqlEx) {
throw new SQLException("Ошибка закрытия объекта набора результатов: " + sqlEx.getMessage());
//Выводим информацию о стеке исключений на консоль
// sqlEx.printStackTrace();
}
}
/**
* Метод закрытия объекта выполнения команды базы данных.
* @throws SQLException
*/
частный void closePreparedStatement() выдает
SQLException {
пытаться {
если (this.preStatement != ноль) {
это.preStatement.close();
this.preStatement = ноль;
}
} catch (SQLException sqlEx) {
throw new SQLException("Ошибка объекта выполнения команды закрытия базы данных: " + sqlEx.getMessage());
//Выводим информацию о стеке исключений на консоль
// sqlEx.printStackTrace();
}
}
/**
* Способ закрытия соединения с базой данных
* @throws SQLException
*/
Private void closeConnection() выдает SQLException {
пытаться {
if (this.dbConnection != null && (!
this.dbConnection.isClosed())) {
это.dbConnection.close();
}
} catch (SQLException sqlEx) {
throw new SQLException("Ошибка закрытия соединения с базой данных: " + sqlEx.getMessage());
//Выводим информацию о стеке исключений на консоль
// sqlEx.printStackTrace();
}
}
}