[RESOLVIDO]Duvidas em adicionar um Animal

E você tem este código do cliente ?

então! tenho sim, mas não to sabendo setar ele…
tipo no combobox da para colocar codigo e nome ou só codigo ou só nome…
mas na hora de gravar não sei como fazer isso!

Sabe qual o problema? Por que tipo assim… o comando que você usa para listar no combobox é um ResultSet.next() dentro de um while que mostra todos os valores do comando sql que você criou, o problema vai ser setar um valor no textfield de um select que você usa para listar todos no combobox… o jeito digamos “burro” seria você criar tipo método igual ao que você usa para pegar listar no combobox e no comando sql colocar um where nome=“getselectedItem()”

Tendeu? rsrs senão quando eu chegar em casa posto um exemplo.

intendi mais ou menos cara… eu quero apenas adicionar o animal com o cliente, mas tah ficando dificil… hahahahaha

Cara, acho que você está entendendo errado como funciona o comboBox.

Você está preenchendo ele com clientes, certo?

cbmcliente.addElement(cliente);  

Quando você faz isso, no comboBox, por default, ele irá o método toString da classe para preencher o rótulo(Label) na hora do usuário selecionar.

Public class Cliente{
.
.
.

@Override  
public String toString() {  
    return nome;  
}  
}

Isso quer dizer quê, digamos que o o combobox está preenchido com cliente, porém irá aparecer só o nome na hora de selecionar.
Se você reescrever o método toString e colocar para retornar o ID , irá aparecer o ID no combobox.

@Override  
public String toString() {  
    return id;  
}  
}

Você está passando o cliente com tudo preenchido, porém só aparece na tela o que você reescreveu no método.
Agora vamos lá. Voce quer atualizar a caixa de texto sempre que for selecionado outro cliente no combobox,certo?
Procure qual evento é ativado quando o valor do comboBox mude, e nele coloque:

Cliente cliente = (Cliente)cbmcliente.getSelectedItem(); //pega o objeto que foi selecionado e faz um cast para Cliente.. Lembre-se que apesar de só exibir o nome, aqui está o objeto com as outras informações também.
txtCodigoCliente.setText(cliente.getCodigo().toString());  //seta o id na sua caixa de texto.

Pronto.
Seria legal se você tentasse fazer o contrário também, digitando, por exemplo 1, na caixa de texto, ele atualiza-se o comboBox e seleciona-se o cliente de acordo com o Id que você digitou.

Aqui vai um exemplo que estou usando em um programa que estou desenvolvendo…

[code] public List listarAgendamentosDia(){
SimpleDateFormat formatData = new SimpleDateFormat(“dd/MM/yyyy”);
Date data = new Date(System.currentTimeMillis());
String date = formatData.format(data);
ResultSet RS;
String select=“select * from novoagendamento where data = '”+date+"’";
List agendamento = new ArrayList<>();
try {
RS = inserir.Consulta(select);
while(RS.next()){
Agendamento ag = new Agendamento();
ag.setCodigo(RS.getInt(“codigo”));
ag.setHorario(String.valueOf(RS.getString(“horario”)));
ag.setData(String.valueOf(RS.getString(“data”)));
ag.setNome(String.valueOf(RS.getString(“nome”)));
ag.setServico(String.valueOf(RS.getString(“servico”)));
ag.setTelefone(String.valueOf(RS.getString(“telefone”)));

            agendamento.add(ag);      
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    try {
        inserir.Exit();
    } catch (SQLException ex) {
        Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
    }
    return agendamento;
   }[/code]

seria nesse mesmo metodo???

 DefaultComboBoxModel cbmcliente = new DefaultComboBoxModel();    
           for ( Cliente cliente : lista ) { 
           cbmcliente.addElement(cliente);
           cbcliente.setModel(cbmcliente);
           Cliente cliente = (Cliente)cbmcliente.getSelectedItem(); //pega o objeto que foi selecionado e faz um cast para Cliente.. Lembre-se que apesar de só exibir o nome, aqui está o objeto com as outras informações também.  
           txtCodigoCliente.setText(cliente.getCodigo().toString()); 

[quote=michetti]Aqui vai um exemplo que estou usando em um programa que estou desenvolvendo…

[code] public List listarAgendamentosDia(){
SimpleDateFormat formatData = new SimpleDateFormat(“dd/MM/yyyy”);
Date data = new Date(System.currentTimeMillis());
String date = formatData.format(data);
ResultSet RS;
String select=“select * from novoagendamento where data = '”+date+"’";
List agendamento = new ArrayList<>();
try {
RS = inserir.Consulta(select);
while(RS.next()){
Agendamento ag = new Agendamento();
ag.setCodigo(RS.getInt(“codigo”));
ag.setHorario(String.valueOf(RS.getString(“horario”)));
ag.setData(String.valueOf(RS.getString(“data”)));
ag.setNome(String.valueOf(RS.getString(“nome”)));
ag.setServico(String.valueOf(RS.getString(“servico”)));
ag.setTelefone(String.valueOf(RS.getString(“telefone”)));

            agendamento.add(ag);      
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    try {
        inserir.Exit();
    } catch (SQLException ex) {
        Logger.getLogger(NovoAgendamento.class.getName()).log(Level.SEVERE, null, ex);
    }
    return agendamento;
   }[/code][/quote]

então cara tentei fazer da data igual você fez, mas está retornando esse erro aqui

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: '’' for column 'data_nascimento' at row 1
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4094)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)

So que não seu caso a condição do where tem que ser o que o foi selecionado no combobox…

como ficaria? boiei agora!

Vai ai o exemplo…

DAO

public class dao { Conexao inserir; public dao(){ inserir = new Conexao(); } public String listarAgendamentos(String op){ ResultSet RS; String resultado = null; String select="select * from novoagendamento where codigo='"+op+"'"; try { RS = inserir.Consulta(select); while(RS.next()){ model ag = new model(); JOptionPane.showMessageDialog(null, RS.getString("servico")); ag.setOp(RS.getString("servico")); resultado = ag.getOp(); } } catch (SQLException ex) { ex.printStackTrace(); } try { inserir.Exit(); } catch (SQLException ex) { Logger.getLogger(dao.class.getName()).log(Level.SEVERE, null, ex); } return resultado; } }

MODEL

[code]public class model {
private String op;

public String getOp() {
    return op;
}

public void setOp(String op) {
    this.op = op;
}

}
[/code]

VIEW

public void preencheTF(){ String op = String.valueOf(jComboBox1.getSelectedItem()); dao dao = new dao(); model resultado = new model(); String msg = dao.listarAgendamentos(op); jTextField1.setText(msg); }

ai criei um evento que ao clicar em uma opção do combobox chama o metodo peencheTF();

private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) { preencheTF(); }

galera larguei mão daquele bang de um campo codigo, não tenho muito tempo para fazer isso
eu preciso apenas gravar o animal…
alguém pode me ajudar?

michetti valew vou ver isso mais adiante, mas o mais urgente agora é gravar o animal… :frowning:

Qual o problema em gravar o animal ? Esta dando algum erro ou você não esta conseguindo pensar em como salvar?

está dando um erro…

que é esse aqui…

Error to try 8 with value Rafael Almeida
java.sql.SQLException: No value specified for parameter 9
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
	at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2611)
	at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2586)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2432)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
	at br.com.banhotosa.Dao.GenericDAO.executeCommand(GenericDAO.java:63)
	at br.com.banhotosa.Dao.AnimalDAO.AdcionarAnimal(AnimalDAO.java:29)
	at br.com.banhotosa.View.FrmaddAnimal.btokActionPerformed(FrmaddAnimal.java:263)
	at br.com.banhotosa.View.FrmaddAnimal.access$400(FrmaddAnimal.java:22)
	at br.com.banhotosa.View.FrmaddAnimal$5.actionPerformed(FrmaddAnimal.java:123)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1082)
	at java.awt.Component.show(Component.java:1651)
	at java.awt.Component.setVisible(Component.java:1603)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at br.com.banhotosa.View.FrmAnimal.btnovoActionPerformed(FrmAnimal.java:177)
	at br.com.banhotosa.View.FrmAnimal.access$100(FrmAnimal.java:20)
	at br.com.banhotosa.View.FrmAnimal$2.actionPerformed(FrmAnimal.java:67)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1082)
	at java.awt.Component.show(Component.java:1651)
	at java.awt.Component.setVisible(Component.java:1603)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at br.com.banhotosa.View.FrmPrincipal.jButton3ActionPerformed(FrmPrincipal.java:264)
	at br.com.banhotosa.View.FrmPrincipal.access$200(FrmPrincipal.java:16)
	at br.com.banhotosa.View.FrmPrincipal$3.actionPerformed(FrmPrincipal.java:81)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

O erro está claro:

[quote]Error to try 8 with value Rafael Almeida
java.sql.SQLException: No value specified for parameter 9 [/quote]

Veja o que vc está passando no parametro 8 e no 9 no seu “insert into ? ? ?”

meu insert é esse

public int AdcionarAnimal(Animal animal) throws SQLException { animal.setCodigo(getNextId("Animal")); String query = "INSERT INTO animal (Codigo, nome_animal, raca, cor, data_nascimento, data_vacina, tipo, obs, cliente) values (?,?,?,?,?,?,?,?,?)"; executeCommand(query, animal.getCodigo(), animal.getNome_animal(), animal.getRaca(), animal.getCor(), animal.getData_nascimento(), animal.getData_vacina(), animal.getTipo(), animal.getObs(), animal.getClientes()); return animal.getCodigo(); }

passa o codigo do executeCommand tb

public int executeCommand(String query,Object... params) throws SQLException {
        PreparedStatement ps = getStatement(query);
        for (int i = 0; i < params.length; i++) {
            try {
            ps.setObject(i+1, params[i]);
            } catch (Exception e) {
                System.out.println("Error to try "+i+" with value "+params[i]);
            }
        }

“chutometro” sse eu não me engano o PreparedStatment usa é o setString e não o setObject…