Olá pessoal, estou com uma dúvida que é a seguinte, Tenho a Classe que cadastra o valor uma diária onde possuo quatro chave estrangeiras onde quando executo aparece
a seguinte mensagem Field ‘idServidor’ doesn’t have a default value ’ mas eu possuo sim esse campo no banco de dados que é a chave estrangeira da tabela SERVIDOR, e coloquei um e.printStackTrace(); e aparece o seguinte erro
java.sql.SQLException:Field'idServidor'doesn't have a default valueatcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)atcom.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)atcom.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)atcom.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)atcom.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)atcom.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1664)atcom.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1583)atClassDiaria.incluiDiaria(ClassDiaria.java:153)atFNovaDiaria.btnSalvarActionPerformed(FNovaDiaria.java:293)atFNovaDiaria.access$400(FNovaDiaria.java:12)atFNovaDiaria$3.actionPerformed(FNovaDiaria.java:85)atjavax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)atjavax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)atjavax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)atjavax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)atjavax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)atjava.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)atjava.awt.Component.processMouseEvent(Component.java:6288)atjavax.swing.JComponent.processMouseEvent(JComponent.java:3267)atjava.awt.Component.processEvent(Component.java:6053)atjava.awt.Container.processEvent(Container.java:2041)atjava.awt.Component.dispatchEventImpl(Component.java:4651)atjava.awt.Container.dispatchEventImpl(Container.java:2099)atjava.awt.Component.dispatchEvent(Component.java:4481)atjava.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)atjava.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)atjava.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)atjava.awt.Container.dispatchEventImpl(Container.java:2085)atjava.awt.Window.dispatchEventImpl(Window.java:2478)atjava.awt.Component.dispatchEvent(Component.java:4481)atjava.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)atjava.awt.EventQueue.access$000(EventQueue.java:84)atjava.awt.EventQueue$1.run(EventQueue.java:602)atjava.awt.EventQueue$1.run(EventQueue.java:600)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)atjava.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)atjava.awt.EventQueue$2.run(EventQueue.java:616)atjava.awt.EventQueue$2.run(EventQueue.java:614)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)atjava.awt.EventQueue.dispatchEvent(EventQueue.java:613)atjava.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)atjava.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)atjava.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)atjava.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)atjava.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)atjava.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Código?
ta usando o que? JPA, hibernate, preparedstatement?
Oziel_Morais
Classe Cadastra Diaria
importjava.sql.*;importjava.util.*;importjavax.swing.JOptionPane;publicclassClassDiaria{publicClassDiaria(){}//========================================================//========================================================// Objetos para receberem os valores das diarias//========================================================//========================================================privateintcodigo;privateStringnome;privateStringperiodoInicio;privateStringperiodoFim;privateStringdestino;privateStringrelatorio;privateStringsetor;privateStringobjetivo;privateStringobservacoes;privateintqtdDiaria;//========================================================//========================================================//Fim da declaração de Objetos//========================================================//========================================================//========================================================//========================================================//Passando Valores para os Objetos//========================================================//========================================================publicvoidsetPegaValDiaria(String_nome,String_periodoInicio,String_periodoFim,String_destino,String_relatorio,String_setor,String_objetivo,String_observacoes,int_qtdDiaria){this.nome=_nome;this.periodoInicio=_periodoInicio;this.periodoFim=_periodoFim;this.destino=_destino;this.relatorio=_relatorio;this.setor=_setor;this.objetivo=_objetivo;this.observacoes=_observacoes;this.qtdDiaria=_qtdDiaria;}//=================================================================//=================================================================//Função para receber e pegar o valor do código para fazer o Update//=================================================================//=================================================================publicvoidsetCodigo(int_codigo){this.codigo=_codigo;}publicintgetCodigo(){returnthis.codigo;}//=======================================================//========================================================//Pegando valores dos objetos//========================================================//========================================================publicStringgetNome(){returnthis.nome;}publicStringgetPeriodoInicio(){returnthis.periodoInicio;}publicStringgetPeriodoFim(){returnthis.periodoFim;}publicStringgetDestino(){returnthis.destino;}publicStringgetRelatorio(){returnthis.relatorio;}publicStringgetSetor(){returnthis.setor;}publicStringgetObjetivo(){returnthis.objetivo;}publicStringgetObservacoes(){returnthis.observacoes;}publicintgetQtdDiaria(){returnthis.qtdDiaria;}//========================================================//========================================================//Fim pega valores dos objetos//========================================================//========================================================//==================================================================//==================================================================//Métodos para receber os valores de nome, periodoSaida, periodoFim//Destino para serem tratados na função DeletaDiaria//==================================================================//==================================================================publicvoidsetDeletaDiaria(String_nome,String_periodoInicio,String_periodoFim,String_destino){this.nome=_nome;this.periodoInicio=_periodoInicio;this.periodoFim=_periodoFim;this.destino=_destino;}//========================================================//========================================================//Função para a conexão com o banco//========================================================//========================================================Connectioncon=null;Statementstmt=null;ClassConectaconexao=newClassConecta();ClassAuditoriaaudita=newClassAuditoria();voidincluiDiaria(){conexao.conecta();try{stmt=conexao.con.createStatement();StringComandoSql="insert into TabCadDiaria(nome, periodoInicio, periodoFim, destino, situacao, setor, QtdDiaria, objetivo, obs) values('"+getNome()+"','"+getPeriodoInicio()+"','"+getPeriodoFim()+"','"+getDestino()+"','"+getRelatorio()+"','"+getSetor()+"','"+String.valueOf(getQtdDiaria())+"','"+getObjetivo()+"','"+getObservacoes()+"')";stmt.executeUpdate(ComandoSql);//Insserindo na tabela de Auditoriaaudita.setTxt("Diária Cadastrada: "+getNome()+" com saida - "+getPeriodoInicio()+" e chegada - "+getPeriodoFim());audita.incluiAuditoria();stmt.close();conexao.con.close();}catch(Exceptione){e.printStackTrace();JOptionPane.showMessageDialog(null,"Ocorreu um erro no sistema, se o problema persistir contate o administrador: '"+e+"'","ATENÇÃO",JOptionPane.WARNING_MESSAGE);}}//===============================================================//===============================================================//Método para seleção de Diárias//===============================================================//===============================================================//===============================================================//===============================================================//Objeto Para receber o valor do comando SQL//===============================================================//===============================================================privateStringcomandoSelecao;publicvoidsetComandoSelecao(String_ComandoSelecao){this.comandoSelecao=_ComandoSelecao;}publicStringgetComandoSelecao(){returnthis.comandoSelecao;}//========================================================//========================================================//Método para a entrega de relatório//========================================================//========================================================voidEntregaRel(){conexao.conecta();try{stmt=conexao.con.createStatement();System.out.println("Entregando Relatorio");Stringcomando="Update TabCadDiaria set situacao = 'ENTREGUE' where idDiaria = "+getCodigo()+"";stmt.executeUpdate(comando);audita.setTxt("Diária de Código: "+getCodigo()+" Entregou Relatório");audita.incluiAuditoria();stmt.close();conexao.con.close();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Ocorreu um erro no sistema, se o problema persistir contate o administrador: '"+e+"'","ATENÇÃO",JOptionPane.WARNING_MESSAGE);}}//========================================================//========================================================//Método para deletar a diária//========================================================//========================================================voidDeletaDiaria(){conexao.conecta();try{stmt=conexao.con.createStatement();System.out.println("Deletando Diária");Stringcomando="Update TabCadDiaria set situacao = 'CANCELADA' where idDiaria = "+getCodigo()+"";stmt.executeUpdate(comando);audita.setTxt("Diária Cancelada: "+getNome()+" Período "+getPeriodoInicio()+" à "+getPeriodoFim()+" Destino: "+getDestino());audita.incluiAuditoria();stmt.close();conexao.con.close();}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Ocorreu um erro no sistema, se o problema persistir contate o administrador: '"+e+"'","ATENÇÃO",JOptionPane.WARNING_MESSAGE);}}}//========================================================//========================================================//Fim da Classe//========================================================//========================================================
No Aguardo
yhhik
esse idServidor é foreign key né?
se for uma foreign key vc tem que passar o valor dela tbm ou desmarque a opção notnull.
Oziel_Morais
É uma foreing key sim, Mas como é que eu passo o valor dela
No aguardo!!!
yhhik
vc deve declarar tbm as foreign key’s em seu objeto.
se for algo que já está cadastrado no BD faça uma pesquisa antes do insert para buscar a FK.
se for um cascade onde vc vai inserir vários objetos de uma vez insira todos os que vc vai precisar da FK primeiro.
Oziel_Morais
Já está cadastrado como é que eu faço essa pesquisa
Vc teria algum exemplo.
No aguardo!!!