Copie o código do código da seguinte forma:
pacote com.groundhog.codingmouse;
importar java.sql.Connection;
importar java.sql.DriverManager;
importar java.sql.PreparedStatement;
importar java.sql.ResultSet;
importar java.sql.SQLException;
/**
* Aula de gerenciamento de banco de dados
* @autor CodingMouse
*20.2.2009
*/
classe final pública DBManager {
/**
* Objeto de conexão de banco de dados
*/
conexão privada dbConnection = null;
/**
* Objeto de execução de comando de banco de dados
*/
private PreparedStatement preStatement = null;
/**
* Objeto de conjunto de resultados
*/
conjunto de resultados privado rsSet = null;
/**
* Número da versão do driver do banco de dados
*/
private static String driverVersion = null;
/**
* Nome de usuário de login do servidor de banco de dados e constantes de string de senha (os valores padrão são 'sa')
*/
private static String banco de dadosUser = "sa";
private static String banco de dadosPassword = "sa";
/**
* Constante de string de nome de classe completa do driver de banco de dados
*/
String final estática privada
DRIVER_CLASS_SQLSERVER2000 =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";/SQL
Conexão direta do servidor 2000
String final estática privada
DRIVER_CLASS_SQLSERVER2005 =
"com.microsoft.sqlserver.jdbc.SQLServerDriver";/SQL
Conexão direta do servidor 2005
String final estática privada
DRIVER_CLASS_BRIDGECONNECT = "sun.jdbc.odbc.JdbcOdbcDriver";
//Conexão ponte ODBC
/**
* Constantes de string de conexão do banco de dados
*/
String final estática privada
BANCO DE DADOS_URL_SQLSERVER2000 =
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=stuD
B"; // Conexão direta do SQL Server 2000
String final estática privada
BANCO DE DADOS_URL_SQLSERVER2005 =
"jdbc:sqlserver://127.0.0.1:1433;NomeBancoDeDados=stuDB";
//Conexão direta do SQL Server 2005
String final estática privada
DATABASE_URL_BRIDGECONNECT = "jdbc:odbc:stuDBSource";
//Conexão ponte ODBC
/**
* Definir variáveis estáticas de instância da própria classe (aplicável a aplicações em modo singleton [ware])
*/
DBManager estático privado connectionManager = null;
/**
* Construção padrão privatizada (aplica-se a aplicativos em modo singleton [ware] para evitar que classes sejam instanciadas diretamente usando a nova palavra-chave)
*/
privateDBManager() {
super();
}
/**
* Método para obter instância de classe de gerenciamento de conexão de banco de dados (aplicação do modo singleton [ware])
* @param version Número da versão do driver do banco de dados, valor: (versão =
2000 | versão = 2005 | versão = odbc)
* @param usuário nome de usuário de login do servidor de banco de dados
* @param senha senha de login do servidor de banco de dados
* @return objeto de gerenciamento de conexão de banco de dados
* @throws Exceção Exceção de erro de parâmetro
*/
DBManager estático público getInstance(
Versão de corda,
Usuário de string,
Senha de string)
lança exceção {
if (!(versão == "2000" || versão == "2005"
|| versão == "odbc")) {
throw new Exception("O número da versão do driver do banco de dados está incorreto, o valor só pode ser "2000/2005/odbc"!");
}
//Salva o número da versão do driver do banco de dados
driverVersão = versão;
if (usuário == nulo || usuário.equals("")) {
throw new Exception("O nome de usuário de login do servidor de banco de dados não pode estar vazio!");
}
//Salva o nome de usuário e senha de login do servidor de banco de dados
banco de dadosUsuário = usuário;
banco de dadosSenha = senha;
//Aplica o padrão singleton [ware] para garantir que a própria classe tenha apenas uma instância
if (connectionManager == nulo) {
connectionManager = novo DBManager();
}
// Retorna uma instância da própria classe
retornar connectionManager;
}
/**
* Método para obter conexão com o banco de dados
* @return objeto de conexão com o banco de dados
*/
conexão privada getConnection() {
tentar {
Classe.forNome(
versão do driver ==
"2000"
?
DRIVER_CLASS_SQLSERVER2000
: (driverVersão ==
"2005"
?
DRIVER_CLASS_SQLSERVER2005
:
DRIVER_CLASS_BRIDGECONNECT));
this.dbConnection =
DriverManager.getConnection(
versão do driver ==
"2000"
?
DATABASE_URL_SQLSERVER2000
: (driverVersão ==
"2005"
?
DATABASE_URL_SQLSERVER2005
:
DATABASE_URL_BRIDGECONNECT),
banco de dadosUser,
senha do banco de dados);
} catch (ClassNotFoundException ex) {
System.err.println("SQL Server não encontrado
" + driverVersion + "Classe de driver de banco de dados: " + ex.getMessage());
//Saída de informações da pilha de exceções no console
// ex.printStackTrace();
} catch (Exceção ex) {
System.err.println("Obter erro de conexão com o banco de dados: " + ex.getMessage());
//Saída de informações da pilha de exceções no console
// ex.printStackTrace();
}
//Retorna o objeto de conexão com o banco de dados
retorne esta.dbConnection;
}
/**
* Método para obter objeto de execução de comando de banco de dados
* @param sql SQL comando assembly string de instrução a ser executada
* @return objeto de execução de comando do banco de dados
*/
PreparedStatement privado getPreparedStatement
(String SQL) {
tentar {
//Cria um objeto de execução de comando de banco de dados com base no objeto de conexão de banco de dados obtido
this.preStatement = getConnection
().prepareStatement(sql);
} catch (Exceção ex) {
System.err.println("Erro ao obter objeto de execução de comando do banco de dados: " + ex.getMessage());
//Saída de informações da pilha de exceções no console
// ex.printStackTrace();
}
//Retorna o objeto de execução do comando do banco de dados
retorne isto.preStatement;
}
/**
* Executar instrução de atualização (Inserir | Atualizar | Excluir)
* @param sql SQL comando assembly string de instrução a ser executada
* @return o número de linhas afetadas
*/
public int executeUpdate(Stringsql){
tentar {
//Esvazia o conteúdo original do objeto do conjunto de resultados
this.rsSet=nulo;
//Executa a instrução e retorna o número de linhas afetadas
retornar this.getPreparedStatement
(sql).executeUpdate();
} catch (SQLException e) {
System.err.println("Erro ao atualizar dados:" +
e.getMessage());
retornar 0;
}finalmente{
//Fecha os recursos de conexão do banco de dados
closeDBResource();
}
}
/**
* Executar instrução de consulta (Select)
* @param sql SQL comando assembly string de instrução a ser executada
* @return objeto do conjunto de resultados após consulta
*/
conjunto de resultados públicos executeQuery(String sql){
tentar {
//Esvazia o conteúdo original do objeto do conjunto de resultados
this.rsSet=nulo;
//Executa a instrução sql para obter o conjunto de resultados
este.rsSet =
this.getPreparedStatement(sql).executeQuery();
} catch (SQLException e) {
System.err.println("Erro nos dados de consulta:" +
e.getMessage());
}
// Retorna o objeto do conjunto de resultados
retorne este.rsSet;
}
/**
* Obtenha o número de registros no conjunto de resultados retornados após a execução da instrução SQL especificada
* @param sql SQL comando assembly string de instrução a ser executada
* @return O número de registros obtidos dos resultados da consulta
*/
public int getResultSetCount(Stringsql){
//Salva a variável do contador que retorna o número de linhas registradas após a execução da instrução SQL especificada.
contagem interna = 0;
tentar {
//Esvazia o conteúdo original do objeto do conjunto de resultados
this.rsSet=nulo;
//Executa a instrução sql para obter o conjunto de resultados
this.rsSet = this.getPreparedStatement
(sql).executeQuery();
// Itera pelo conjunto de resultados e acumula o contador
enquanto (this.rsSet.next()) {
contar++;
}
} catch (SQLException e) {
e.printStackTrace();
}
contagem de retorno;
}
/**
* Fechar recursos de conexão de banco de dados (incluindo objetos de conjunto de resultados, objetos de execução de comandos e objetos de conexão)
*/
public void closeDBResource() {
tentar {
closeResultSet();
closePreparedStatement();
fecharConexão();
} catch (SQLException sqlEx) {
System.err.println(sqlEx.getMessage
());
//Saída de informações da pilha de exceções no console
//sqlEx.printStackTrace();
}
}
/**
* Método para fechar o objeto do conjunto de resultados
* @throwsSQLException
*/
private void closeResultSet() lança SQLException {
tentar {
if (this.rsSet! = nulo) {
this.rsSet.close();
this.rsSet=nulo;
}
} catch (SQLException sqlEx) {
throw new SQLException("Erro ao fechar o objeto do conjunto de resultados: " + sqlEx.getMessage());
//Saída de informações da pilha de exceções no console
//sqlEx.printStackTrace();
}
}
/**
* Método para fechar objeto de execução de comando do banco de dados
* @throwsSQLException
*/
private void closePreparedStatement() lança
SQLException{
tentar {
if (this.preStatement! = null) {
this.preStatement.close();
this.preStatement = null;
}
} catch (SQLException sqlEx) {
throw new SQLException("Erro ao fechar objeto de execução de comando do banco de dados: " + sqlEx.getMessage());
//Saída de informações da pilha de exceções no console
//sqlEx.printStackTrace();
}
}
/**
* Método para fechar a conexão com o banco de dados
* @throwsSQLException
*/
private void closeConnection() lança SQLException {
tentar {
if (this.dbConnection! = null && (!
this.dbConnection.isClosed())) {
this.dbConnection.close();
}
} catch (SQLException sqlEx) {
throw new SQLException("Erro ao fechar conexão com o banco de dados: " + sqlEx.getMessage());
//Saída de informações da pilha de exceções no console
//sqlEx.printStackTrace();
}
}
}