Ir ao conteúdo
  • Cadastre-se

Leonardo Lovato

Membro Pleno
  • Posts

    20
  • Cadastrado em

  • Última visita

Tudo que Leonardo Lovato postou

  1. Boa noite à todos. Galera, estou com dois problemas referente as datas no meu sistema Tenho uma tabela que me traz um produto com suas respectivas datas de compra/vencimento. Problema numero 1 -> Está acontecendo algo difícil de entender, eu cadastro a data de compra agora (30/05/2018) e coloco a data de vencimento para dia 10/06/2018, porém tem produtos que ele cadastra como um dia antes, e tem produtos que ele cadastra como um dia depois, por exemplo: NO SISTEMA: Obs.: No sistema eu cadastrei o produto "coco" como: "COMPRA: 30/05/2018" e "VALIDADE 10/06/2018", perceba que ele retrocedeu um dia em ambas as datas. O produto coca cola está correto, eu cadastrei exatamente as datas apresentadas. NO BANCO DE DADOS: Obs.: No banco de dados já aparece diferente, o produto "coco" está correto, foi essa data mesmo que inseri (_porem perceba que la em cima na tela do sistema ele me mostrou diferente_). O produto coca cola está incorreto, pois a data correta que eu cadastrei no sistema foi "COMPRA: 30/05/2018" e "VALIDADE: 10/06/2018". Estou utilizando uma Table Model. Resumindo -> Alguns produtos estão certo no sistema e errado no banco e vise versa, desculpe a confusão, mas tentei explicar da melhor forma. "Problema" numero 2 -> Como faço para ser exibido a data no padrão br ? ( ## - ## - #### ). Abaixo está o meu código dos métodos ( métodos `adicionar()` , `pesquisar_produtos()` e `setar_campos()` ): private void adicionar() { if ((txtProProduto.getText().isEmpty()) || (txtProPreco.getText().isEmpty()) || (txtProQuantidade.getText().isEmpty()) || (jDatProCompra.getDate() == null || (jDatProVencimento.getDate() == null))) { JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios."); } else { String sql = "insert into tbprodutos(produto,preco,quantidade,categoria,compra,validade) values(?,?,?,?,?,?)"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtProProduto.getText()); pst.setString(2, txtProPreco.getValue().toString()); pst.setString(3, txtProQuantidade.getText()); pst.setString(4, cboProCategoria.getSelectedItem().toString()); pst.setDate(5, new java.sql.Date(jDatProCompra.getDate().getTime())); pst.setDate(6, new java.sql.Date(jDatProVencimento.getDate().getTime())); int adicionado = pst.executeUpdate(); if (adicionado > 0) { JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso."); txtProProduto.setText(null); txtProPreco.setText(null); txtProQuantidade.setText(null); cboProCategoria.setSelectedItem(null); jDatProCompra.setDate(null); jDatProVencimento.setDate(null); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } } private void pesquisar_produto() { String sql = "select produto,preco,quantidade,categoria,compra,validade from tbprodutos where produto like ?"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtProPesquisar.getText() + "%"); rs = pst.executeQuery(); tblProdutos.setModel(DbUtils.resultSetToTableModel(rs)); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } public void setar_campos() { int setar = tblProdutos.getSelectedRow(); txtProProduto.setText(tblProdutos.getModel().getValueAt(setar, 0).toString()); txtProPreco.setText(tblProdutos.getModel().getValueAt(setar, 1).toString()); txtProQuantidade.setText(tblProdutos.getModel().getValueAt(setar, 2).toString()); cboProCategoria.setSelectedItem(tblProdutos.getModel().getValueAt(setar, 3).toString()); jDatProCompra.setDate((java.sql.Date) tblProdutos.getModel().getValueAt(setar, 4)); jDatProVencimento.setDate((java.sql.Date) tblProdutos.getModel().getValueAt(setar, 5)); } Obrigado à todos!
  2. Claro! Desculpe o egoísmo! rs. Foi um erro besta, perceba que eu seto a data no mesmo jDate (que se chama jDatProCompra), ou seja, logicamente a data ia ficar a mesma nos dois campos. Eu só troquei o nome de jDatProCompra para jDatProVencimento (que é o nome da minha outra jDate).
  3. Saudações galera. Gostaria de tirar uma duvida com vocês... Estou utilizando o jDateChooser para pegar uma data e inserir no banco MySQL. O problema é que a aplicação não está respeitando a data que coloco, está inserindo a data atual do sistema. Por exemplo, se eu coloco 05/06/2018, quando salvo e dou um select no banco percebo que foi salvo a data atual do meu sistema. Por que acontece isso? Abaixo está o código que pego a data: pst.setDate(5, new java.sql.Date(jDatProCompra.getDate().getTime())); pst.setDate(6, new java.sql.Date(jDatProCompra.getDate().getTime())); Obrigado a todos! ---------------------- Achei o problema, pode fechar
  4. @Leonardo0308 Sem palavras! Valeu mesmo! Ajudarei como puder também!!
  5. @Leonardo0308 PUUUUT4 QUE *****! NÃO TENHO PALAVRAS PRA TE AGRADECER MANO!!!!!!!!!! EU COMI BOLA! Como sou burro! kkkkkkkkkkk Mil desculpas cara, agora que eu entendi a logica, eu estava dando um select na coluna errada!!!! meu deuuuuuuus, valeu mano! sem palavras! rodou 100%
  6. Então mano, exatamente igual! Tanto é que eu copiei e colei no banco, e o select me retornou o resultado certinho...
  7. @Leonardo0308 Ele apresenta aquela mensagem do banco:
  8. @Leonardo0308 Nesse ultimo codigo ele me mostrou o que eu digitei no campo "txtUsuLogin" Desculpa a demora, aqui no serviço ta um caos, rs.
  9. Aparece esse erro... Putz cara, desculpa te importunar!
  10. Ele printou o select select usuario from tbusuarios where usuario = ?
  11. @Leonardo0308 Apareceu "Estou sendo executado!".
  12. Então man, coloquei, mas ele da um erro, informando que eu preciso colocar um return, olha: Ele pede pra pra colocar o return no lugar que sinalizei, olha: Ai ele para de dar o erro...
  13. @Leonardo0308 Então, ele não deixa inserir porque no banco está como chave unica, mas ele nao paresenta o erro que digitei no JOptionPane... O sistema apresenta esse erro:
  14. @Leonardo0308 Não, é JOptionPane.showMessageDialog(null, "Login já cadastrado."); Que está no método verificarLogin()
  15. Mano, fiz dessa forma que voce disse, mas ele não está apresentando a minha mensagem, ele lança a exception no banco como chave duplicada (normal), mas o meu JOptionPane.showMessageDialog() ele não apresenta, devo estar fazendo muita **********! private void adicionar() { if ((txtUsuId.getText().isEmpty()) || (txtUsuNome.getText().isEmpty()) || (txtUsuLogin.getText().isEmpty()) || (txtUsuSenha.getText().isEmpty()) || (cboUsuPerfil.getSelectedIndex() == 0)) { JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios."); } else { if (verificarLogin()) { String sql = "insert into tbusuarios(iduser,usuario,login,senha,telefone,perfil,sexo) values(?,?,?,?,?,?,?)"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtUsuId.getText()); pst.setString(2, txtUsuNome.getText()); pst.setString(3, txtUsuLogin.getText()); pst.setString(4, txtUsuSenha.getText()); pst.setString(5, txtUsuFone.getText()); pst.setString(6, cboUsuPerfil.getSelectedItem().toString()); pst.setString(7, cboUsuSexo.getSelectedItem().toString()); // confirmar a inserção dos dados na tabela int adicionado = pst.executeUpdate(); if (adicionado > 0) { JOptionPane.showMessageDialog(null, "Usuário cadastrado com sucesso."); txtUsuId.setText(null); txtUsuNome.setText(null); txtUsuFone.setText(null); txtUsuLogin.setText(null); txtUsuSenha.setText(null); cboUsuSexo.setSelectedItem(null); cboUsuPerfil.setSelectedItem(null); } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } } }
  16. @Leonardo0308 Que isso mano! Você está ajudando demais, e com extrema clareza, até esta utilizando meu código Eu que estou bem "cru" kkkkkk Enfim mano, eu fiz isso mesmo que você disse, mas chamar somente o método verificarLogin() dentro do if já é o suficiente ? Porque quando clico no botão pra adicionar ele não faz nada , parece que ele ta entrando no if e não está fazendo nada ... private void adicionar() { String sql = "insert into tbusuarios(iduser,usuario,login,senha,telefone,perfil,sexo) values(?,?,?,?,?,?,?)"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtUsuId.getText()); pst.setString(2, txtUsuNome.getText()); pst.setString(3, txtUsuLogin.getText()); pst.setString(4, txtUsuSenha.getText()); pst.setString(5, txtUsuFone.getText()); pst.setString(6, cboUsuPerfil.getSelectedItem().toString()); pst.setString(7, cboUsuSexo.getSelectedItem().toString()); if ((txtUsuId.getText().isEmpty()) || (txtUsuNome.getText().isEmpty()) || (txtUsuLogin.getText().isEmpty()) || (txtUsuSenha.getText().isEmpty()) || (cboUsuPerfil.getSelectedIndex() == 0)) { JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios."); } else if (verificarLogin()){ } else{ // confirmar a inserção dos dados na tabela int adicionado = pst.executeUpdate(); if (adicionado > 0) { JOptionPane.showMessageDialog(null, "Usuário cadastrado com sucesso."); txtUsuId.setText(null); txtUsuNome.setText(null); txtUsuFone.setText(null); txtUsuLogin.setText(null); txtUsuSenha.setText(null); cboUsuSexo.setSelectedItem(null); cboUsuPerfil.setSelectedItem(null); } } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } Cara, mais uma vez desculpe ficar sendo incomodo, chato, kkkkk ... Mas estou aprendendo! Valeu de coração!!!
  17. Cara, muito obrigado pela atenção, de verdade! Eu crio o método verificarLogin() : private void verificarLogin(){ String sql = "select usuario from tbusuarios where usuario = ?"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtUsuLogin.getText()); rs = pst.executeQuery(); if(rs.next() == true){ JOptionPane.showMessageDialog(null, "Login já cadastrado."); } } catch (Exception e) { JOptionPane.showMessageDialog(this, e); } } Estou chamando ele no método adicionar(), ou seja, quando tento adicionar (cadastrar) um login, certo ? Estou chamando o método de verificarLogin() no else, olhe: private void adicionar() { String sql = "insert into tbusuarios(iduser,usuario,login,senha,telefone,perfil,sexo) values(?,?,?,?,?,?,?)"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtUsuId.getText()); pst.setString(2, txtUsuNome.getText()); pst.setString(3, txtUsuLogin.getText()); pst.setString(4, txtUsuSenha.getText()); pst.setString(5, txtUsuFone.getText()); pst.setString(6, cboUsuPerfil.getSelectedItem().toString()); pst.setString(7, cboUsuSexo.getSelectedItem().toString()); if ((txtUsuId.getText().isEmpty()) || (txtUsuNome.getText().isEmpty()) || (txtUsuLogin.getText().isEmpty()) || (txtUsuSenha.getText().isEmpty()) || (cboUsuPerfil.getSelectedIndex() == 0)) { JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios."); } else { verificarLogin(); // confirmar a inserção dos dados na tabela int adicionado = pst.executeUpdate(); if (adicionado > 0) { JOptionPane.showMessageDialog(null, "Usuário cadastrado com sucesso."); txtUsuId.setText(null); txtUsuNome.setText(null); txtUsuFone.setText(null); txtUsuLogin.setText(null); txtUsuSenha.setText(null); cboUsuSexo.setSelectedItem(null); cboUsuPerfil.setSelectedItem(null); } } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } porém, quando eu tento cadastrar duas pessoas com o mesmo login, o programa re retorna a seguinte exception: "java.sql.SQLException: Can not executeUpdate() or executeLargeUpdate() for SELECTs" Estou chamado ele no lugar errado ? Se eu chamo dentro do if ele nem valida.. Desculpe novamente, e obrigado pela atenção xará!
  18. @Leonardo0308 Obrigado pela luz, xará! Seria mais ou menos assim ? private void verificarLogin(){ String sql = "select usuario from tbusuarios"; try { pst = connection.prepareStatement(sql); pst.setString(2, txtUsuLogin.getText()); rs = pst.executeQuery(); if(rs.next() == true){ JOptionPane.showMessageDialog(null, "Login já cadastrado."); } } catch (Exception e) { JOptionPane.showMessageDialog(this, e); } } Desculpe a ignorância, estou aprendendo, rs...
  19. Bom dia galera! Sou iniciante em programação (mais especificamente na linguagem Java) e estou fazendo um sistema de armazenamento para aprendizado. Eu tenho uma tela de cadastro de usuários e gostaria de saber como eu valido dois logins iguais, ou seja, se alguém tentar cadastrar um login que já possui no banco, quero que exiba uma mensagem "Login já cadastrado". Provavelmente terei que criar um método só pra isso, certo ? Postarei o código do método adicionar, que adiciona um usuário no banco. private void adicionar() { String sql = "insert into tbusuarios(iduser,usuario,login,senha,telefone,perfil,sexo) values(?,?,?,?,?,?,?)"; try { pst = connection.prepareStatement(sql); pst.setString(1, txtUsuId.getText()); pst.setString(2, txtUsuNome.getText()); pst.setString(3, txtUsuLogin.getText()); pst.setString(4, txtUsuSenha.getText()); pst.setString(5, txtUsuFone.getText()); pst.setString(6, cboUsuPerfil.getSelectedItem().toString()); pst.setString(7, cboUsuSexo.getSelectedItem().toString()); if ((txtUsuId.getText().isEmpty()) || (txtUsuNome.getText().isEmpty()) || (txtUsuLogin.getText().isEmpty()) || (txtUsuSenha.getText().isEmpty()) || (cboUsuPerfil.getSelectedIndex() == 0)) { JOptionPane.showMessageDialog(null, "Preencha todos os campos obrigatórios."); } else { // confirmar a inserção dos dados na tabela int adicionado = pst.executeUpdate(); if (adicionado > 0) { JOptionPane.showMessageDialog(null, "Usuário cadastrado com sucesso."); txtUsuId.setText(null); txtUsuNome.setText(null); txtUsuFone.setText(null); txtUsuLogin.setText(null); txtUsuSenha.setText(null); cboUsuSexo.setSelectedItem(null); cboUsuPerfil.setSelectedItem(null); } } } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } Obrigado!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!