A conexão está ok, mas quando eu insiro um dado no formulário do médico e clico no botão salvar, da o seguinte erro:
Bom Dia, o próprio erro lhe diz o que se deve fazer…
Ele esta dizendo ( for input String : ‘’ " ).
Isso quer dizer que você esta passando um valor vazio para um campo que não pode ser vazio… faca o tratamento dos dados na sua clase antes de salvar.
Seu código deve está tentado converter uma String vazia ("") para número. Algo +/- assim:
String numero = "";
Integer n = Integer.parseInt(numero); // ERRO! java.lang.NumberFormatException: For input string: ""
Para evitar isso, faça as devidas validações nos dados recebidos do usuário.
Boa tarde! No caso, no banco de dados tem várias colunas como “null”, entção eu teria que passar todos esses dados então?
Esses são os atributos
Esse é o meu método “salvar”
o código do método “salvar”
public void Salvar(ModeloMedico mod){
conexaocontrole.conectarMysql(); //Pesquisar no Banco
try {
PreparedStatement pst = conexaocontrole.con.prepareStatement("insert into medico(nome,data_nasc,n_conselho,cpf,rg,org_emissor,estado_civil,sexo,end_pessoal,n_end_pessoal,compl_end_pessoal,bair_end_pessoal,cep_end_pessoal,cid_end_pessoal,uf_end_pessoal,tel_res_end_pessoal,tel_cel_end_pessoal,end_profi,n_end_profi,compl_end_profi,bair_end_profi,cep_end_profi,cid_end_profi,uf_end_profi,crm,esp_prin,clinico,cirurgico,titulo,Instituicao,email,site,tel_profi,cur_lat,faculdade,inst_fac,ano_con_fac,mestrado,inst_mes,ano_con_mes,doutorado,inst_dou,ano_con_dou,posdoutorado,inst_posdou,ano_con_posdou,docencia,inst_docen) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
pst.setString(1,mod.getNome());
pst.setString(2,mod.getData_nasc());
pst.setInt(3,mod.getN_conselho());
pst.setInt(4,mod.getCpf());
pst.setInt(5,mod.getRg());
pst.setString(6,mod.getOrg_emissor());
pst.setString(7,mod.getEstado_civil());
pst.setString(8,mod.getSexo());
pst.setString(9,mod.getEnd_pessoal());
pst.setInt(10,mod.getN_end_pessoal());
pst.setString(11,mod.getCompl_end_pessoal());
pst.setString(12,mod.getBair_end_pessoal());
pst.setString(13,mod.getCep_end_pessoal());
pst.setString(14,mod.getCid_end_pessoal());
pst.setString(15,mod.getUf_end_pessoal());
pst.setString(16,mod.getTel_res_end_pessoal());
pst.setString(17,mod.getTel_cel_end_pessoal());
pst.setString(18,mod.getEnd_profi());
pst.setInt(19,mod.getN_end_profi());
pst.setString(20,mod.getCompl_end_profi());
pst.setString(21,mod.getBair_end_profi());
pst.setString(22,mod.getCep_end_profi());
pst.setString(23,mod.getCid_end_profi());
pst.setString(24,mod.getUf_end_profi());
pst.setInt(25,mod.getCrm());
pst.setString(26,mod.getEsp_prin());
pst.setString(27,mod.getClinico());
pst.setString(28,mod.getCirurgico());
pst.setInt(29,mod.getTitulo());
pst.setString(30,mod.getInstituicao());
pst.setString(31,mod.getEmail());
pst.setString(32,mod.getSite());
pst.setString(33,mod.getTel_profi());
pst.setString(34,mod.getCur_lat());
pst.setString(35,mod.getFaculdade());
pst.setString(36,mod.getInst_fac());
pst.setString(37,mod.getAno_con_fac());
pst.setString(38,mod.getMestrado());
pst.setString(39,mod.getInst_mes());
pst.setString(40,mod.getAno_con_mes());
pst.setString(41,mod.getDoutorado());
pst.setString(42,mod.getInst_dou());
pst.setString(43,mod.getAno_con_dou());
pst.setString(44,mod.getPosdoutorado());
pst.setString(45,mod.getInst_posdou());
pst.setString(46,mod.getAno_con_posdou());
pst.setString(47,mod.getDocencia());
pst.setString(48,mod.getInst_docen());
pst.execute();
JOptionPane.showMessageDialog(null, "Dados Inseridos com Sucesso! ");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Dados Nao Inseridos com Sucesso! \nERRO: "+ex);
}
conexaocontrole.desconectar();
}
Inseri todos os dados com exceção das “jCheckBox”, pq n sei o comando pra setar pro banco
o erro seguinte aparece
Revise este método.
Me diz uma coisa, as colunas do tipo date no mysql são Strings em java tbm?
Elas são do tipo date, mas o banco de dados vai te fornecer uma função que retorna a hora em string, atendendo a sua necessidade.
Ex.:
SELECT * FROM cad_clientes WHERE DATE_FORMAT(DataCadastro, ‘%Y-%m-%d’) = CURDATE();
Fonte: https://pt.stackoverflow.com/questions/111179/pegar-data-atual-no-mysql
Outra coisa, você preisa estudar o modelo entidade relacionamento, pois seu banco de dados está mal estruturado.
Pra fins de estudo ok, mas pra fins de evolução, estude o modelo.
Estude também teoria dos conjuntos.
Obs.: eu não sei mySql.
Ok amigo, obrigado pelas dicas, só mais uma dúvida
como eu faço para parar duas ou mais jcheckbox por string?
assim não funciona
mod.setSexo((String)jCheckBoxSexMascCadMed.getS);
Ahhh! eu eu sei mysql, n fiz relações ainda, pois só tenho essas tabela “medico” rs
Pode fazer assim:
mod.setSexo(jCheckBoxSexMascCadMed.getText());
Qual vai ser a dor de cabeça, quando construir o modelo:
Vai ter que refatorar o método salvar, pois cada tabela vai exigir uma inserção especifica, em uma ordem específica, respeitando chaves primarias, estrangeiras, únicas e o que mais se fizer necessário.
Para fins de desenvolvimento vai atrasar um pouco, o lado bom é que não deixa de ser um aprendizado.
Té+
Atualizei o BD, tinham uns tipos de dados diferentes, mas apareceu esse novo erro, juro q to revirando tudo e n acho
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "Sim"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at visao.FormMedico.jButtonSalvarNovoCadMedActionPerformed(FormMedico.java:1017)
at visao.FormMedico.access$1400(FormMedico.java:17)
at visao.FormMedico$15.actionPerformed(FormMedico.java:858)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
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:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Poste o método jButtonSalvarNovoCadMedActionPerformed, ele está por volta da linha 1017.
A linha 1017 deve ser a linha com erro.
Você está tentanto fazer um parse com string ( “sim”) e deveria ser um número.
private void jButtonSalvarNovoCadMedActionPerformed(java.awt.event.ActionEvent evt) {
//Dados Pessoas
mod.setNome(jTextFieldNomCadMed.getText());
mod.setData_nasc(jTextFieldDatNasCadMed.getText());
mod.setN_conselho(Integer.parseInt(jTextFieldNConselhoCadMed.getText()));
mod.setCpf(Integer.parseInt(jTextFieldCpfCadMed.getText()));
mod.setRg(Integer.parseInt(jTextFieldRgCadMed.getText()));
mod.setOrg_emissor(jTextFieldOrgEmiCadMed.getText());
mod.setEstado_civil((String)jComboBoxEstCivCadMed.getSelectedItem());
mod.setSexo(jCheckBoxSexMascCadMed.getText());
mod.setSexo(jCheckBoxSexFemCadMed.getText());
mod.setEnd_pessoal(jTextFieldEndPessoalCadMed.getText());
mod.setN_end_pessoal(Integer.parseInt(jTextFieldNumEndPessoalCadMed.getText()));
mod.setCompl_end_pessoal(jTextFieldComplEndPessoalCadMed.getText());
mod.setBair_end_pessoal(jTextFieldBaiEndPessoalCadMed.getText());
mod.setCep_end_pessoal(jTextFieldCepEndPessoalCadMed.getText());
mod.setCid_end_pessoal(jTextFieldCidEndPessoalCadMed.getText());
mod.setUf_end_pessoal(jTextFieldUfEndPessoalCadMed.getText());
mod.setTel_res_end_pessoal(jTextFieldTelResPessoalCadMed.getText());
mod.setTel_cel_end_pessoal(jTextFieldTelCelPessoalCadMed.getText());
//Dados Profissionais
mod.setEnd_profi(jTextFieldEndProCadMed.getText());
mod.setN_end_profi(Integer.parseInt(jTextFieldNumEndProCadMed.getText()));
mod.setCompl_end_profi(jTextFieldComplProCadMed.getText());
mod.setBair_end_profi(jTextFieldBaiProCadMed.getText());
mod.setCep_end_profi(jTextFieldCepProCadMed.getText());
mod.setCid_end_profi(jTextFieldCidProCadMed.getText());
mod.setUf_end_profi(jTextFieldUfProCadMed.getText());
mod.setCrm(Integer.parseInt(jTextFieldCrmCadMed.getText()));
mod.setEsp_prin(jTextFieldEspPrinCadMed.getText());
mod.setClinico(jCheckBoxEspClinicoCadMed.getText());
mod.setCirurgico(jCheckBoxEspCirurgicoCadMed.getText());
mod.setTitulo(Integer.parseInt(jCheckBoxTitSimCadMed.getText()));
mod.setInstituicao(jTextFieldInstDadProCadMed.getText());
mod.setEmail(jTextFieldEmaCadMed.getText());
mod.setSite(jTextFieldSiteCadMed.getText());
mod.setTel_profi(jTextFieldTelProCadMed.getText());
mod.setCur_lat(jTextFieldCurLatCadMed.getText());
//Formação Profissional
mod.setFaculdade(jTextFieldFacCadMed.getText());
mod.setInst_fac(jTextFieldInstFacCadMed.getText());
mod.setAno_con_fac(jTextFieldAnoConcFacCadMed.getText());
mod.setMestrado(jCheckBoxMesSimCadMed.getText());
mod.setInst_mes(jTextFieldInstMesCadMed.getText());
mod.setAno_con_mes(jTextFieldAnoConMesCadMed.getText());
mod.setDoutorado(jCheckBoxlDouSimCadMed.getText());
mod.setInst_dou(jTextFieldInstDouCadMed.getText());
mod.setAno_con_dou(jTextFieldAnoConDouCadMed.getText());
mod.setPosdoutorado(jCheckBoxPosDouSimCadMed.getText());
mod.setInst_posdou(jTextFieldInstPosDouCadMed.getText());
mod.setAno_con_posdou(jTextFieldAnoConPosDouCadMed.getText());
mod.setDocencia(jCheckBoxDocenSimCadMed.getText());
mod.setInst_docen(jTextFieldInstDocenCadMed.getText());
control.Salvar(mod);
}
Para as instruções a seguir, quando preencher o formulário as variáveis relacionadas aos campos de texto(JTextField), devem conter exclusivamente números
mod.setN_conselho(Integer.parseInt(jTextFieldNConselhoCadMed.getText()));
mod.setCpf(Integer.parseInt(jTextFieldCpfCadMed.getText()));
mod.setRg(Integer.parseInt(jTextFieldRgCadMed.getText()));
mod.setN_end_pessoal(Integer.parseInt(jTextFieldNumEndPessoalCadMed.getText()));
mod.setN_end_profi(Integer.parseInt(jTextFieldNumEndProCadMed.getText()));
mod.setCrm(Integer.parseInt(jTextFieldCrmCadMed.getText()));
/A instrução a seguir esta errada, pois o chekbox tem o texto sim, quando você faz getText(), recebe “sim”, e não um número, gerando o erro atual/
mod.setTitulo(Integer.parseInt(jCheckBoxTitSimCadMed.getText()));
Substitua a instrução por: mod.setTitulo(Integer.parseInt(jCheckBoxTitSimCadMed.getText().equals("sim")?"1":"0"));
Ok amigo, e enquanto ao “Nao” do checkbox ficaria assim?
mod.setTitulo(Integer.parseInt(jCheckBoxTitSimCadMed.getText().equals("sim")?"1":"0"));
mod.setTitulo(Integer.parseInt(jCheckBoxTitNaoCadMed.getText().equals("nao")?"1":"0"));
Outra dúvida tbm,
Tenho tbm esses dois jCheckBoxs, qual a sintaze correta pra eles? tipo, se n for “clínico” é cirúrgico;
![]()
Ficaria assim?
mod.setTitulo(jCheckBoxEspClinicoCadMed.getText().equals(“clinico”)?“1”:“0”);
mod.setTitulo(jCheckBoxEspCirurgicoCadMed.getText().equals(“cirurgico”)?“1”:“0”);
Quem define a lógica é a sua necessidade de implementação, pode ser:
mod.setTitulo(Integer.parseInt(jCheckBoxTitNaoCadMed.getText().equals(“nao”)?“35”:“10”));
mod.setTitulo(Integer.parseInt(jCheckBoxTitNaoCadMed.getText().equals(“nao”)?“0”:“1”));
Mas concerteza não pode ser
mod.setTitulo(Integer.parseInt(jCheckBoxTitNaoCadMed.getText().equals(“nao”)?“1”:“0”));
pois vai confundir com o processamento do outro JCheckBox.
Quem define é a necessidade de sua aplicação.
Assista todas as aulas do canal é melhor que aprender em pedaços.
Té+
Acabei de assistir, mas fala de outra coisa nesse vídeo, minha dúvida é de como eu vou passar os textos “sim” e “nao” quando eu marcar somente uma caixa e pra q serve esse final ?“35”:“10” ?
O canal é seu?




