try{
String sqlinsert = "insert into tb_fornecedor(fornecedor, cep, endereco, email, fixo, celular)values('"+
tf_fornecedor.getText()+"','"+
tf_cep.getText()+"','"+
tf_end.getText()+"','"+
tf_email.getText()+"','"+
tf_fixo.getText()+"','"+
tf_celular.getText()+"')";
con_fornecedores.statement.executeUpdate(sqlinsert);
JOptionPane.showMessageDialog(null,"Gravado com Sucesso!");
con_fornecedores.executeSQL("select * from tb_fornecedor");
con_fornecedores.resultset.first();
mostrar_dados();
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,"Error ao tentar gravar dados..."+erro);
}
Gravar dados no firebird
R
Galera estou trocando de banco de dados antes usava o access e agora estou mudando para o firebird,
só que tem um probleminha quando vou gravar dados da um error, o codigo de gravação é o mesmo que fazemos quando o access?
tipo este codigo aí é quando era o access, muda algo para o firebird?
2 Respostas
W
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("[email removido]");
fornecedor.setFixo("([telefone removido]");
fornecedor.setCelular("([telefone removido]");
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:
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.
C
Na verdade não se faz cadastro assim, mas sim por prepare statement.
import factory.ConnectionFactory;
import modelo.Usuario;
import java.sql.*;
import java.sql.PreparedStatement;
public class UsuarioDAO {
private Connection connection;
public UsuarioDAO(){
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Usuario usuario){
String sql = "INSERT INTO usuario(nome,cpf,email,telefone) VALUES(?,?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, usuario.getNome());
stmt.setString(2, usuario.getCpf());
stmt.setString(3, usuario.getEmail());
stmt.setString(4, usuario.getTelefone());
stmt.execute();
stmt.close();
} catch (SQLException u) {
throw new RuntimeException(u);
}
}
}
Criado 29 de outubro de 2012
Ultima resposta 30 de out. de 2012
Respostas 2
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo