Dúvidas de como chamar os campos e salvar no banco

2 respostas
Jackye

Olá! Gente me ajuda! É trabalho para final de curso!

Como faço pra salvar um empréstimo quando faço da seguinte forma: Tenho uma tela de emprestimo que recebe valores veja em anexo a tela com valores preenchidos. Nesta tela tenho um metodo que pega esses campos preenchidos, aqui os codigos:
public Emprestimo preencherCamposEmprestimo(Emprestimo emprestimo) {
        Usuario usuario = new Usuario();
        usuario.getCodUsuario();
        emprestimo.setCodUsuario(usuario);
        emprestimo.setDaEmprestimo(String.valueOf(jFormattedTextField1.getText()));
        emprestimo.setDaDevolucao(String.valueOf(jFormattedTextField2.getText()));
        emprestimo.setExemplar(exemplares);

       return emprestimo;
    }
Chamo esse metodo lá no botao. Assim:
EmprestimoDAO.fabricaEmprestimoDAO().salvar(preencherCamposEmprestimo(new Emprestimo()));
        JOptionPane.showMessageDialog(null, "Empréstimo efetuado sucesso!");
        limparCamposEmprestimo();
dá erro em ambos os campos: setDaEmprestimo e setDaDevolucao. diz que requer date. um emprestimo é feito por um usuario, como faço pra buscar o codigo do usuario que for selecionado no combobox? Sendo que o relacionamento do Hibernate o codusuario é do tipo usuario. Para o collection de exemplares tenho um metodo de preencher tabela que pega estes exemplares:
private void addObra() {
        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();
        TmObras = (DefaultTableModel) jTable1.getModel();
        exemplares = session.createQuery("FROM Exemplar where codExemplar = " + jTextField4.getText()).list();
        obras = session.createQuery("FROM Obra").list();
        if (exemplares.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Nenhum Exemplar encontrado.");
        } else {
            for (int j = 0; j < exemplares.size(); j++) {
                // String[] campos = new String[]{null, null, null, null};
                // TmObras.addRow(campos);
                try {
                    if (exemplares.get(j).getInConsulta() != 0) {
                        JOptionPane.showMessageDialog(null, "Não pode ser emprestado!");
                    } else {
                        TmObras.setValueAt(exemplares.get(j).getCodExemplar(), j, 0);
                        TmObras.setValueAt(exemplares.get(j).getCodObra(), j, 1);
                        TmObras.setValueAt(obras.get(j).getTitulo(), j, 2);
                        TmObras.setValueAt(obras.get(j).getNuExemplar(), j, 3);
                    }
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(null, "Este está com o campo InConsulta nulo! Por isso este erro: " + e);
                }
            }
        }
        session.close();
    }
(Este código so me dá uma linha! =() Para setDaEmprestimo e .setDaDevolucao tenho tambem metodos que pega: a data atual(setDaEmprestimo ):
private void MostrarDataEmprestimoAtual() {
        String data = (new java.text.SimpleDateFormat("dd/MM/yyyy").format(new java.util.Date(System.currentTimeMillis())));
        // O método setPlaceholderCharacter('_'); Define o lugar onde o usuário deve preencher.
        mascara.setPlaceholderCharacter('_');
        JFormattedTextField jtf = new JFormattedTextField(mascara);
        jFormattedTextField1.setText(data);
    }
e a data com soma de 5 dias (setDaDevolucao ):
private void processarDataDevolucao(int prazo) {
        GregorianCalendar dataDevolucao = new GregorianCalendar();
        dataDevolucao.add(GregorianCalendar.DATE, prazo);
        Date data = dataDevolucao.getTime();
        DateFormat df = DateFormat.getDateInstance();
        String stData = df.format(data);
        jFormattedTextField2.setText(stData);
    }

2 Respostas

jaboot

Olá Jackye,

Acredito que o erro está aquiemprestimo.setDaEmprestimo(String.valueOf(jFormattedTextField1.getText())); emprestimo.setDaDevolucao(String.valueOf(jFormattedTextField2.getText()));
Isso não vai retornar um Date, mas sim uma String, não?

Jackye

Então, como faço para pegar todos esses campos?

:cry:

Criado 15 de fevereiro de 2012
Ultima resposta 15 de fev. de 2012
Respostas 2
Participantes 2