Cara, eu faço as classes um pouco diferente que você para consultas e inserções no banco. Vou postar aki umas classe que utilizei em um trabalho que talvez possa lhe servir de base para alguma dúvida:
[color=red]Esta classe é a conexão, que utilizo em minhas outras classes para busca e inserção no banco:[/color]
package BD;
import java.sql.*;
public class Conexao {
private Connection conn;
//Método construtor
public Conexao(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost/salesmanager","root","xnddnas2");
//INformando conexão OK
System.out.println("Sucesso na conexão!!");
}
catch (ClassNotFoundException cnfe){
System.out.println(cnfe.getMessage());
}
catch (SQLException sqlex){
System.out.println(sqlex.getMessage());
}
}
public Connection getConexao(){
return conn;
}
//Método fechar implementado com polimorfismo, responsável por fechar
//as tabelas abertas
public void fechar(ResultSet rs){
if(rs!=null){
try{
rs.close();
}
catch(Exception e){}
}
}
public void fechar(java.sql.Statement stmt){
if(stmt!=null){
try{
stmt.close();
}
catch(Exception e){}
}
}
//Mètodo responsável por encerrar a conexão com o BD
public void fecharConexao(){
if(conn!=null){
try{
conn.close();
}
catch(Exception e){}
}
}
}
[color=red]
Esta classe é a que utilizo em minhas Inserções e Atualizações (note que faço esta separada da de consulta):[/color]
import BD.Conexao;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
public class Inserir_ExcluirDadosTabela {
private String status = "";
Mensagem msg = null;
public Inserir_ExcluirDadosTabela(String sql, String tipo, boolean exibirMensagem) {
//Captuando a string de conexão da classe conexão
Conexao c = new Conexao();
Connection conn = c.getConexao();
try{
//Cria um statement para podermos mandar um SQL para o banco
Statement stmt = conn.createStatement();
//Mandamos o SQL para o banco
stmt.executeUpdate(sql);
if(exibirMensagem) {
if(tipo.equalsIgnoreCase("Inserção"))
msg = new Mensagem("Registro Inserido com Sucsso!", "I");
else
msg = new Mensagem("Registro Excluído com Sucsso!", "I");
}
status = "ok";
} catch (SQLException ex) {
System.out.println("Erro de SQL");
System.out.println(ex.getMessage());
msg = new Mensagem("Erro de Inserção no Banco de Dados", "A");
status = "erro";
}
}
/**
* @return the status
*/
public String getStatus() {
return status;
}
}
[color=red]
E esta classe é a que utilizo em minhas Consultas no banco (select):[/color]
import BD.Conexao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
public class ConsultasBanco {
private String NomeCli = "", NomeProd = "", Cpf = "", Rua = "", Bairro = "", Cidade = "", DataVenda = "";
private String UF = "", Cep = "", Tel = "", Sexo = "", Email = "", DataVencimento = "", Observacao = "";
private long CodCli = 0, CodProd = 0, CodVenda = 0;
private double EstoqueAtual = 0, EstoqueMin = 0, PrecoCusto = 0, PrecoVenda = 0, VlrDevido = 0, VlrPago = 0;
private double NotaFiscal = 0, TotalPagar, VlrUnitario = 0, Qtde = 0, VlrTotal = 0;
//Método construtor
public ConsultasBanco(String sql, String tabela){
//Captuando a string de conexão da classe conexão
Conexao c = new Conexao();
Connection conn = c.getConexao();
try{
//Cria um statement para podermos mandar um SQL para o banco
Statement stmt = conn.createStatement();
//Mandamos o SQL para o banco e obtemos um ResultSet
ResultSet rs = stmt.executeQuery(sql);
String aux = "";
if(tabela.equalsIgnoreCase("Cliente")) {
exibicao = "\n [ DADOS PESSOAIS: ]";
//Percorrendo o ResultSet e obtendo os valores do banco
while (rs.next()) {
//será usado para pesquisa
aux = rs.getString("CodCliente");
if (!rs.wasNull()) {
CodCli = Long.parseLong(aux);
}
aux = rs.getString("Nome");
if (!rs.wasNull()) {
NomeCli = aux;
}
aux = rs.getString("Cpf");
if (!rs.wasNull()) {
Cpf = aux
}
aux = rs.getString("Tel");
if (!rs.wasNull()) {
Tel = aux;
}
aux = rs.getString("Rua");
if (!rs.wasNull()) {
Rua = aux;
}
aux = rs.getString("Bairro");
if (!rs.wasNull()) {
Bairro = aux;
}
aux = rs.getString("Cidade");
if (!rs.wasNull()) {
Cidade = aux;
}
aux = rs.getString("UF");
if (!rs.wasNull()) {
UF = aux;
}
aux = rs.getString("Cep");
if (!rs.wasNull()) {
Cep = aux;
}
aux = rs.getString("Email");
if (!rs.wasNull()) {
Email = aux;
}
} // while
}
if(tabela.equalsIgnoreCase("Produto")) {
//Percorrendo o ResultSet e obtendo os valores do banco
while (rs.next()) {
aux = rs.getString("CodProduto");
if (!rs.wasNull()) {
CodProd = Long.parseLong(aux);
}
aux = rs.getString("Nome");
if (!rs.wasNull()) {
NomeProd = aux;
}
aux = rs.getString("EstoqueAtual");
if (!rs.wasNull()) {
EstoqueAtual = Double.parseDouble(aux);
}
aux = rs.getString("EstoqueMin");
if (!rs.wasNull()) {
EstoqueMin = Double.parseDouble(aux);
}
aux = rs.getString("PrecoCusto");
if (!rs.wasNull()) {
PrecoCusto = Double.parseDouble(aux);
}
aux = rs.getString("PrecoVenda");
if (!rs.wasNull()) {
PrecoVenda = Double.parseDouble(aux);
}
} // while
}
} catch (SQLException ex) {
System.out.println("Erro de SQL");
System.out.println(ex.getMessage());
}
}
}