Gravando ComboBox no banco

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();
	}
}

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.

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”));

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.