Copie el código de código de la siguiente manera:
paquete com.groundhog.codingmouse;
importar java.sql.Conexión;
importar java.sql.DriverManager;
importar java.sql.PreparedStatement;
importar java.sql.ResultSet;
importar java.sql.SQLException;
/**
* Clase de manejo de base de datos
* @autor CodingMouse
*2009.2.20
*/
clase final pública DBManager {
/**
* Objeto de conexión de base de datos
*/
Conexión privada dbConnection = nulo;
/**
* Objeto de ejecución de comando de base de datos
*/
declaración preparada privada predeclaración = nulo;
/**
* Objeto de conjunto de resultados
*/
Conjunto de resultados privado rsSet = nulo;
/**
* Número de versión del controlador de la base de datos
*/
driverVersion de cadena estática privada = nulo;
/**
* Constantes de cadena de nombre de usuario y contraseña de inicio de sesión del servidor de base de datos (los valores predeterminados son 'sa')
*/
Usuario de base de datos de cadena estática privada = "sa";
Contraseña de base de datos de cadena estática privada = "sa";
/**
* Constante de cadena de nombre de clase completa del controlador de base de datos
*/
Cadena final estática privada
DRIVER_CLASS_SQLSERVER2000 =
"com.microsoft.jdbc.sqlserver.SQLServerDriver" // SQL
Conexión directa al servidor 2000
Cadena final estática privada
DRIVER_CLASS_SQLSERVER2005 =
"com.microsoft.sqlserver.jdbc.SQLServerDriver" // SQL
Conexión directa del servidor 2005
Cadena final estática privada
DRIVER_CLASS_BRIDGECONNECT = "sun.jdbc.odbc.JdbcOdbcDriver";
// conexión puente ODBC
/**
* Constantes de cadena de conexión de base de datos
*/
Cadena final estática privada
DATABASE_URL_SQLSERVER2000 =
"jdbc:microsoft:sqlserver://127.0.0.1:1433;Nombre de la base de datos=stuD
B"; // conexión directa de SQL Server 2000
Cadena final estática privada
DATABASE_URL_SQLSERVER2005 =
"jdbc:sqlserver://127.0.0.1:1433;DatabaseName=stuDB";
// Conexión directa de SQL Server 2005
Cadena final estática privada
DATABASE_URL_BRIDGECONNECT = "jdbc:odbc:stuDBSource";
// conexión puente ODBC
/**
* Definir variables estáticas de instancia de la clase misma (aplicable a aplicaciones en modo singleton [ware])
*/
DBManager estático privado ConnectionManager = nulo;
/**
* Construcción predeterminada privatizada (se aplica a aplicaciones en modo singleton [ware] para evitar que se creen instancias de clases directamente usando la nueva palabra clave)
*/
administradorDBManager() {
súper();
}
/**
* Método para obtener una instancia de clase de gestión de conexión de base de datos (aplicación del modo singleton [ware])
* @param version Número de versión del controlador de la base de datos, valor: (versión =
2000 | versión = 2005 | versión = odbc)
* @param nombre de usuario de inicio de sesión del servidor de base de datos del usuario
* @param contraseña contraseña de inicio de sesión del servidor de base de datos
* Objeto de gestión de conexión de base de datos @return
* @throws Excepción Excepción de error de parámetro
*/
DBManager estático público getInstance(
versión de cadena,
Usuario de cadena,
Contraseña de cadena)
lanza una excepción {
if (!(versión == "2000" || versión == "2005"
|| versión == "odbc")) {
throw new Exception("El número de versión del controlador de la base de datos es incorrecto, el valor sólo puede ser "2000/2005/odbc"!");
}
//Guardar el número de versión del controlador de la base de datos
driverVersion = versión;
if (usuario == nulo || usuario.equals("")) {
throw new Exception("¡El nombre de usuario de inicio de sesión del servidor de base de datos no puede estar vacío!");
}
//Guardar nombre de usuario y contraseña de inicio de sesión del servidor de base de datos
usuario de base de datos = usuario;
Contraseña de la base de datos = contraseña;
// Aplicar el patrón singleton [ware] para garantizar que la clase en sí tenga solo una instancia
si (connectionManager == nulo) {
ConnectionManager = nuevo DBManager();
}
// Devuelve una instancia de la clase misma
devolver conexiónManager;
}
/**
* Método para obtener conexión a la base de datos.
* @return objeto de conexión de base de datos
*/
Conexión privada getConnection() {
intentar {
Clase.paraNombre(
versión del controlador ==
"2000"
?
DRIVER_CLASS_SQLSERVER2000
: (versión del controlador ==
"2005"
?
DRIVER_CLASS_SQLSERVER2005
:
DRIVER_CLASS_BRIDGECONNECT));
this.dbConnection =
DriverManager.getConnection(
versión del controlador ==
"2000"
?
DATABASE_URL_SQLSERVER2000
: (versión del controlador ==
"2005"
?
DATABASE_URL_SQLSERVER2005
:
DATABASE_URL_BRIDGECONNECT),
usuario de base de datos,
contraseña de la base de datos);
} captura (ClassNotFoundException ex) {
System.err.println("SQL Server no encontrado
" + driverVersion + "Clase de controlador de base de datos: " + ex.getMessage());
//Enviar información de la pila de excepciones en la consola
// ex.printStackTrace();
} captura (Excepción ex) {
System.err.println("Obtener error de conexión a la base de datos: " + ex.getMessage());
//Enviar información de la pila de excepciones en la consola
// ex.printStackTrace();
}
// Devuelve el objeto de conexión a la base de datos
devolver this.dbConnection;
}
/**
* Método para obtener el objeto de ejecución de comandos de la base de datos.
* @param sql Cadena de declaración de ensamblaje del comando SQL que se ejecutará
* Objeto de ejecución de comando de base de datos @return
*/
declaración preparada privada obtener declaración preparada
(Cadena sql) {
intentar {
//Crea un objeto de ejecución de comando de base de datos basado en el objeto de conexión de base de datos obtenido
this.preStatement = getConnection
().prepareStatement(sql);
} captura (Excepción ex) {
System.err.println("Error al obtener el objeto de ejecución del comando de la base de datos: " + ex.getMessage());
// Salida de información de la pila de excepciones en la consola
// ex.printStackTrace();
}
// Devuelve el objeto de ejecución del comando de la base de datos
devolver esta.preStatement;
}
/**
* Ejecutar declaración de actualización (Insertar|Actualizar|Eliminar)
* @param sql Cadena de declaración de ensamblaje del comando SQL que se ejecutará
* @return el número de filas afectadas
*/
público int ejecutar Actualización (cadena sql) {
intentar {
// Vaciar el contenido original del objeto del conjunto de resultados
this.rsSet = nulo;
//Ejecuta la declaración y devuelve el número de filas afectadas
devolver this.getPreparedStatement
(sql).executeUpdate();
} captura (SQLException e) {
System.err.println("Error al actualizar datos:" +
e.getMessage());
devolver 0;
}finalmente{
//Cerrar recursos de conexión a la base de datos
cerrarDBResource();
}
}
/**
* Ejecutar declaración de consulta (Seleccionar)
* @param sql Cadena de declaración de ensamblaje del comando SQL que se ejecutará
* @return objeto de conjunto de resultados después de la consulta
*/
conjunto de resultados público ejecutar consulta (cadena sql) {
intentar {
// Vaciar el contenido original del objeto del conjunto de resultados
this.rsSet = nulo;
//Ejecutar sentencia sql para obtener el conjunto de resultados
this.rsSet =
this.getPreparedStatement(sql).executeQuery();
} captura (SQLException e) {
System.err.println("Error de datos de consulta:" +
e.getMessage());
}
// Devuelve el objeto del conjunto de resultados
devolver this.rsSet;
}
/**
* Obtener el número de registros en el conjunto de resultados devueltos después de ejecutar la instrucción SQL especificada
* @param sql Cadena de declaración de ensamblaje del comando SQL que se ejecutará
* @return El número de registros obtenidos de los resultados de la consulta.
*/
público int getResultSetCount (cadena sql) {
//Guarde la variable de contador que devuelve el número de filas registradas después de ejecutar la instrucción SQL especificada.
recuento int = 0;
intentar {
// Vaciar el contenido original del objeto del conjunto de resultados
this.rsSet = nulo;
//Ejecutar sentencia sql para obtener el conjunto de resultados
this.rsSet = this.getPreparedStatement
(sql).executeQuery();
// Iterar a través del conjunto de resultados y acumular el contador
mientras (this.rsSet.next()) {
contar++;
}
} captura (SQLException e) {
e.printStackTrace();
}
recuento de devoluciones;
}
/**
* Cerrar los recursos de conexión de la base de datos (incluidos los objetos del conjunto de resultados, los objetos de ejecución de comandos y los objetos de conexión)
*/
público vacío closeDBResource() {
intentar {
cerrarResultSet();
closeDeclaraciónPreparada();
cerrarConexión();
} captura (SQLException sqlEx) {
System.err.println(sqlEx.getMessage
());
// Salida de información de la pila de excepciones en la consola
// sqlEx.printStackTrace();
}
}
/**
* Método para cerrar el objeto del conjunto de resultados.
* @lanza SQLException
*/
closeResultSet vacío privado () lanza SQLException {
intentar {
si (this.rsSet! = nulo) {
this.rsSet.close();
this.rsSet = nulo;
}
} captura (SQLException sqlEx) {
throw new SQLException("Error al cerrar el objeto del conjunto de resultados: " + sqlEx.getMessage());
// Salida de información de la pila de excepciones en la consola
// sqlEx.printStackTrace();
}
}
/**
* Método para cerrar el objeto de ejecución de comando de la base de datos.
* @lanza SQLException
*/
lanzamientos privados vacíos closePreparedStatement()
SQLExcepción {
intentar {
if (this.preStatement! = nulo) {
this.preStatement.close();
this.preStatement = nulo;
}
} captura (SQLException sqlEx) {
throw new SQLException("Error del objeto de ejecución del comando de cierre de base de datos: " + sqlEx.getMessage());
//Enviar información de la pila de excepciones en la consola
// sqlEx.printStackTrace();
}
}
/**
* Método para cerrar la conexión a la base de datos.
* @lanza SQLException
*/
closeConnection vacío privado () lanza SQLException {
intentar {
si (this.dbConnection! = nulo && (!
this.dbConnection.isClosed())) {
this.dbConnection.close();
}
} captura (SQLException sqlEx) {
throw new SQLException("Error al cerrar la conexión a la base de datos: " + sqlEx.getMessage());
// Salida de información de la pila de excepciones en la consola
// sqlEx.printStackTrace();
}
}
}