Bom, refatorando um pouco o seu exemplo, e usando o conceito de Fabrica de conexões e Repositório, para persistimos por exemplo um fornecedor poderíamos ter:
- classe para o modelo/entidade Fornecedor;
package com.togoworks.study;
public class Fornecedor {
private String nome;
private String cep;
private String endereco;
private String email;
private String fixo;
private String celular;
//GETTERS E SETTERS
//método toString sobreescrito ....
}
- classe ConnectionFactory;
package com.togoworks.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public static Connection createFirebirdConnection() {
try {
Connection connection = DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:d:/Database/guj.fbd","SYSDBA","masterkey");
return connection;
} catch (SQLException e) {
throw new RuntimeException("Erro ao realizar connection: " + e);
}
}
}
- classe FornecedorRepository;
package com.togoworks.study;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class FornecedorRepository {
private Connection connection;
//a responsabilidade de fechar a connection é de quem esta provendo a mesma
public FornecedorRepository(Connection connection) {
this.connection = connection;
}
public void save(Fornecedor fornecedor) {
try {
String sql = "insert into tb_fornecedor(fornecedor, cep, endereco, email, fixo, celular) values (?, ?, ?, ?, ?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, fornecedor.getNome());
preparedStatement.setString(2, fornecedor.getCep());
preparedStatement.setString(3, fornecedor.getEndereco());
preparedStatement.setString(4, fornecedor.getEmail());
preparedStatement.setString(5, fornecedor.getFixo());
preparedStatement.setString(6, fornecedor.getCelular());
preparedStatement.execute();
//Como eu abri eu fecho!
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Fornecedor> findAll() {
List<Fornecedor> fornecedores = new ArrayList<Fornecedor>();
try {
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from tb_fornecedor");
while(resultSet.next()) {
//instanciamos e mapeamos um fornecedor
Fornecedor fornecedor = new Fornecedor();
fornecedor.setNome(resultSet.getString("fornecedor"));
fornecedor.setCep(resultSet.getString("cep"));
fornecedor.setEndereco(resultSet.getString("endereco"));
fornecedor.setEmail(resultSet.getString("email"));
fornecedor.setFixo(resultSet.getString("fixo"));
fornecedor.setCelular(resultSet.getString("celular"));
//adicionamos o fornecedor a lista de forncedores que será retornada
fornecedores.add(fornecedor);
}
//Como eu abri eu fecho!
resultSet.close();
statement.close();
//retornamos a lista de fornedores
return fornecedores;
} catch (SQLException e) {
e.printStackTrace();
//Caso ocorra algum erro prefiro retornar uma lista vazia
return new ArrayList<Fornecedor>(0);
}
}
}
- uma classe para testar as implementações.
package com.togoworks.study;
import java.sql.Connection;
import java.sql.SQLException;
import com.togoworks.database.ConnectionFactory;
public class TesteFornecedorRepositoryFirebird {
public static void main(String[] args) {
Fornecedor fornecedor = new Fornecedor();
fornecedor.setNome("Aldo Auto Peças");
fornecedor.setCep("13460-000");
fornecedor.setEndereco("Rua das Ladeiras, 123");
fornecedor.setEmail("aldo4@autopecas.com");
fornecedor.setFixo("(19 6498-6528");
fornecedor.setCelular("(19) 9876-9836");
try {
Connection connection = ConnectionFactory.createFirebirdConnection();
FornecedorRepository repository = new FornecedorRepository(connection);
//Persiste um fornecedor usando o repositório
repository.save(fornecedor);
//Lista os fornecedores usando o repositório
//Necessário implementar toString em Fornecedor
System.out.println(repository.findAll());
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Links uteis para ler e baixar o firebird.
Firebird:
- http://www.firebirdsql.org/en/firebird-2-1/
FlameRobin:
2) http://www.flamerobin.org/
Driver JDBC - Jaybird
3) http://www.firebirdsql.org/en/jdbc-driver/
Espero ter ajudado, fique a vontade para criticas e sugestões.