Ir ao conteúdo

Posts recomendados

Postado

Estou fazendo uma aplicação web para o meu TCC e preciso implementar a funcionalidade de importar uma lista de alunos pro meu banco. Sinceramente eu não faço a menor ideia de como fazer isso, o que eu sei de java é o que eu aprendi na faculdade e não é lá grande coisa e o pouco que eu encontrei sobre isso no google não ajudou em nada. 
 

O "alunos.xlsx" tem 3 colunas: id, nome e matrícula. 

Não sei se importa, mas o servidor é o glassfish 4.1.1.

Segue o código para que vejam a maneira que estou fazendo os cruds.

Não sei nem por onde começar, então qualquer dica é bem vinda :v

 

package com.alpha.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;

import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="aluno")
public class Aluno implements Serializable{
    
    @Id
    @Column(name="aluno_id")
    private Integer id;
    @Column(name="aluno_nome")
    private String nome;
    @Column(name="aluno_matricula")
    private String matricula;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getMatricula() {
        return matricula;
    }

    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }
}



DAO:
 

package com.alpha.dao;

import com.alpha.entity.Aluno;
import com.alpha.util.HibernateUtil;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;

public class AlunoDao {

    private Session sessao;
    private Transaction trans;
    private List<Aluno> list;

    public List<Aluno> getList() {
        sessao = HibernateUtil.getSessionFactory().openSession();
        trans = sessao.beginTransaction();

        Criteria cri = sessao.createCriteria(Aluno.class);
        this.list = cri.list();
        sessao.close();
        return list;
    }

    public void addAluno(Aluno a) {
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            trans = sessao.beginTransaction();

            Aluno aluno = new Aluno();

            aluno.setId(a.getId());
            aluno.setNome(a.getNome());
            aluno.setMatricula(a.getMatricula());

            sessao.save(aluno);
            trans.commit();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sessao.close();
        }
    }

    public void editAluno(Aluno a) {
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            trans = sessao.beginTransaction();

            sessao.update(a);
            trans.commit();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sessao.close();
        }
    }

    public void removeAluno(Aluno a) {
        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            trans = sessao.beginTransaction();

            sessao.delete(a);
            trans.commit();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sessao.close();
        }
    }
}

 

Bean:

package com.alpha.bean;

import com.alpha.dao.AlunoDao;
import com.alpha.entity.Aluno;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.List;

@Named(value = "alunoBean")
@SessionScoped
public class AlunoBean implements Serializable {

    private Aluno aluno = new Aluno();
    private AlunoDao alunoDao = new AlunoDao();
    private List<Aluno> alunos;

    public AlunoBean() {
    }

    public List listarAlunos() {
        alunos = alunoDao.getList();
        return this.alunos;
    }

    public void adicionarAluno() {
        alunoDao.addAluno(aluno);
        aluno = new Aluno();
    }

    public void removerAluno(Aluno a) {
        aluno = a;
        alunoDao.removeAluno(aluno);
        aluno = new Aluno();
    }

    public Aluno getAluno() {
        return aluno;
    }

    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }

    public AlunoDao getAlunoDao() {
        return alunoDao;
    }

    public void setAlunoDao(AlunoDao alunoDao) {
        this.alunoDao = alunoDao;
    }

    public List<Aluno> getAlunos() {
        return alunos;
    }

    public void setAlunos(List<Aluno> alunos) {
        this.alunos = alunos;
    }
}

xhtml:

<h:form id="dtAlunos">
        <p:dataTable var="listaDeAlunos" value="#{alunoBean.listarAlunos()}">
            <p:column headerText="Id">
                <h:outputText value="#{listaDeAlunos.id}" />
            </p:column>
            <p:column headerText="Aluno">
                <h:outputText value="#{listaDeAlunos.nome}" />
            </p:column>
            <p:column headerText="Matrícula">
                <h:outputText value="#{listaDeAlunos.matricula}" />
            </p:column>
            <p:column headerText="Ações">
                <p:commandButton icon="fa fa-trash" styleClass="btn-danger" 
                                 action="#{alunoBean.removerAluno(listaDeAlunos)}" update=":dtAlunos"/>
            </p:column>
        </p:dataTable>

    </h:form>

    <h:form id="formCadastrarAluno">
        <p:panelGrid columns="1" style="width: 100%; border: none" styleClass="no-border" layout="grid">
            <p:outputLabel value="Id"/>
            <p:inputText  value="#{alunoBean.aluno.id}" style="width: 100%" />
            <p:outputLabel value="Aluno"/>
            <p:inputText  value="#{alunoBean.aluno.nome}" style="width: 100%" />
            <p:outputLabel value="Matrícula"/>
            <p:inputText  value="#{alunoBean.aluno.matricula}" style="width: 100%" />

            <p:separator/>

            <p:row>
                <p:commandButton style="font-size: x-large" value="Cancelar" 
                                 styleClass="btn-material pull-left" update=":formCadastrarAluno"
                                 />
                <p:commandButton style="font-size: x-large" styleClass="btn-primary btn-material pull-right" 
                                 value="Cadastrar" action="#{alunoBean.adicionarAluno()}" 
                                 update=":formCadastrarAluno :dtAlunos" />
            </p:row>
        </p:panelGrid>
    </h:form>

 

Postado

Bom, depois de alguns dias pesquisando eu descobri que era bem mais simples do que eu pensava. Eu só estava procurando no lugar errado.

 

Usei uma api chamada jxl e criei uma outra classe pra testar. Segue o código pra quem precisar depois.

É necessário usar um arquivo .xls(excel 97-2003).

 

Colunas do excel = (ID, NOME, INSCRICAO)

 

DAO

 public void importa(Candidato c) {

        try {
            sessao = HibernateUtil.getSessionFactory().openSession();
            trans = sessao.beginTransaction();
            Workbook workbook = Workbook.getWorkbook(new File("C:\\Users\\junio\\Desktop\\scrum\\candidatos.xls"));
            Sheet sheet = workbook.getSheet(0);
            int linhas = sheet.getRows();
            sheet.getRow(1);

            for (int i = 1; i < linhas; i++) {
                Cell ID = sheet.getCell(0, i);
                Cell NOME = sheet.getCell(1, i);
                Cell INSCRICAO = sheet.getCell(2, i);
                
                Candidato candidato = new Candidato();
                         
                candidato.setId(Integer.parseInt(ID.getContents()));
                candidato.setNome(NOME.getContents());
                candidato.setInscricao(INSCRICAO.getContents());               
                sessao.save(candidato);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
             trans.commit();
            sessao.close();
        }
    }

Bean

public void importar() {
        try {
            candidatoDao.importa(candidato);
            FacesMessage message = new FacesMessage("Sucesso!");
            FacesContext.getCurrentInstance().addMessage(null, message);
        } catch (Exception e) {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro!", null);
            FacesContext.getCurrentInstance().addMessage(null, message);
        }
    }

Entidade

public class Candidato implements Serializable{
    
    @Id
    @Column(name="candidato_id")
    private Integer id;
    @Column(name="candidato_nome")
    private String nome;
    @Column(name="candidato_inscricao")
    private String inscricao;

	//getters and setters

}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!