Gravando ComboBox no banco

3 respostas
S

Boa tarde

Desde ja peço desculpa pelo transtorno mas estou tentando gravar um JComBox box no banco e nao venho conseguindo gostaria de qualquer ajuda para que eu possa resolver este probleminha.

Abaixo seguem na ordem: a linhas do meu metodo PegaObjetoDosCampos() onde jcbTpCliente eh do tipo JComboBox:

per = new PersistenciaTpClienteJDBC();

TpCliente tipo = new TpCliente();

tipo.setCodigo(per.getKey(jcbTpCliente.getSelectedItem().toString()));

c.setTpCliente(tipo);

metodo getKey da classe Persistencia:

public Integer getKey(String nome){

String sql = Select * from tpcliente where nome = '” + nome + “’”;

try {

PreparedStatement stm = conexao.prepareStatement(sql);

ResultSet rs = stm.executeQuery();

if(rs.first()){

Integer id = rs.getInt(codigo);

return id;

}

} catch (Exception e) {

e.printStackTrace();

}

return 0;

}

e o método pra gravar no banco:

public void grava(Object obj) {

try {

Cliente c = (Cliente) obj;

PreparedStatement stmt;

String sql =insert into cliente +

(nome=?, telefone=?, email=?, codtpcliente=?, numcasa=?, codrua=?, codbairro=?);
stmt = conexao.prepareStatement(sql);

		stmt.setString  (1, c.getNome());
		stmt.setString  (2, c.getTelefone());
		stmt.setString  (3, c.getEmail());
		//System.out.println(c.getTpCliente().getCodigo());
		stmt.setInt     (4, c.getTpCliente().getCodigo());
		stmt.setInt     (5, c.getNumCasa());
		stmt.setInt     (6, c.getRua().getCodigo());
		stmt.setInt     (7, c.getBairro().getCodigo());

		stmt.execute();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

3 Respostas

celsofurtado

Boa tarde shunHades,

A sua instrução de insert não seria assim?

String sql ="insert into cliente(nome, telefone, email, codtpcliente,  numcasa, codrua, codbairro) values(?, ?, ?, ?, ?, ?, ?)";

Espero ter ajudado,

Té mais.

S

oi Celsomarcos estava sim errado o sql

consegui corrigir o erro com sua ajuda e uma boa revisao em um outro errinho^^

o q acontece agora eh q nao estou conseguindo buscar o JComboBox

ai está meu metodo busca:

public Object busca(String nome) throws DadoRequeridoNaoExisteException {
	PreparedStatement stmt;
	ResultSet         rs;

	try {

		stmt = conexao.prepareStatement
		("select * from cliente where nome=?");
		stmt.setString(1, nome);
		rs = stmt.executeQuery();
		if (rs.first())
		{
			// a busca teve sucesso, o nome existe na tabela
			Cliente c = new Cliente();
			c.setCodigo    (rs.getInt("Codigo"));
			c.setNome      (rs.getString("nome"));
			c.setTelefone  (rs.getString("telefone"));
			c.setEmail     (rs.getString("email"));
			c.setNumCasa   (rs.getInt("numcasa"));
			c.setTpCliente ((TpCliente) rs.getObject("codtpcliente"));
			c.setBairro    ((Bairro)rs.getObject("codbairro"));
			c.setRua       ((Rua)rs.getObject("codrua"));

			return c;
		}
		else
			throw new DadoRequeridoNaoExisteException("O cliente " + nome + " não está cadastrado");


	} catch (SQLException e) {
		e.printStackTrace();
	}

	return null;
}
o erro da nos comboBox:

c.setTpCliente ((TpCliente) rs.getObject(codtpcliente));

c.setBairro    ((Bairro)rs.getObject(codbairro));

c.setRua       ((Rua)rs.getObject(codrua));
celsofurtado

E aí!!

Eu faria da seguinte forma:

stmt = conexao.prepareStatement 
("select * from cliente where nome= '" + nome + "'"); 
//stmt.setString(1, nome);  esta linha eu tiro
rs = stmt.executeQuery();

Espero ter ajudado.

Té mais.

Criado 23 de junho de 2007
Ultima resposta 23 de jun. de 2007
Respostas 3
Participantes 2