Olá, boa noite.
Venho aqui deixar uma dúvida que já está me encomodando a uma semana.
Como eu faço uma pesquisa usando o Struts e o hibernate.
O meu código é bem simples, tenho um pojo que deveria acessar a base de dados e pelos gets buscar os valores, que deveriam ser passados por parâmetro para a minha classe form no struts.
Para salvar os dados no banco de dados eu passo os dados do ActionForm para o meu POJO. Agora quando eu preciso acessar os dados eu tenho que buscar os dados dentro do POJO e retornar os dados para o meu Form. Pelo menos essa foi a minha analogia.
Caso esteja errado eu agradeço a correção.
Se alguém tiver um bom manual explicando como trabalhar com o hibernate, na proatica, eu agradeço.
Os resultados que estãos sendo retornado é null e zeros.
Se alguém puder me ajudar eu agradeço.
Estou enviando o código fonte junto, para facilitar.
Veja o código do ActionForm
package br.com.biblioteca.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class CadastrarForm extends ActionForm {
private String autor;
private String titulo;
private String assunto;
private String indice;
private String editora;
private int edicao;
private int ano;
private int isbn;
private int numero;
private int prateleira;
private int estante;
private boolean livros;
private boolean cddvd;
private boolean revista;
private int idcadastrar;
private String acao;
public String getAcao() {
return acao;
}
public void setAcao(String acao) {
this.acao = acao;
}
public int getIdcadastrar() {
return idcadastrar;
}
public void setIdcadastrar(int idcadastrar) {
this.idcadastrar = idcadastrar;
}
public boolean isCddvd() {
return cddvd;
}
public void setCddvd(boolean cddvd) {
this.cddvd = cddvd;
}
public boolean isLivros() {
return livros;
}
public void setLivros(boolean livros) {
this.livros = livros;
}
public boolean isRevista() {
return revista;
}
public void setRevista(boolean revista) {
this.revista = revista;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public String getAssunto() {
return assunto;
}
public void setAssunto(String assunto) {
this.assunto = assunto;
}
public int getEdicao() {
return edicao;
}
public void setEdicao(int edicao) {
this.edicao = edicao;
}
public String getEditora() {
return editora;
}
public void setEditora(String editora) {
this.editora = editora;
}
public int getEstante() {
return estante;
}
public void setEstante(int estante) {
this.estante = estante;
}
public String getIndice() {
return indice;
}
public void setIndice(String indice) {
this.indice = indice;
}
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public int getPrateleira() {
return prateleira;
}
public void setPrateleira(int prateleira) {
this.prateleira = prateleira;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors erros = new ActionErrors();
if ("INC".equals(getAcao())){
if (getAssunto() == null) {
erros.add("assunto", new ActionMessage("erro.assunto.requerido"));
}
setAcao(null);
}
return erros;
}
}
o meu pojo ficou assim.
package br.com.biblioteca.pojo;
import java.io.Serializable;
public class CadastrarPOJO implements Serializable {
private String autor;
private String titulo;
private String assunto;
private String indice;
private String editora;
private int edicao;
private int ano;
private int isbn;
private int numero;
private int prateleira;
private int estante;
private boolean livros;
private boolean cddvd;
private boolean revista;
private int idcadastrar;
// Construtor da classe//
public CadastrarPOJO() {
}
public int getIdcadastrar() {
return idcadastrar;
}
public void setIdcadastrar(int idcadastrar) {
this.idcadastrar = idcadastrar;
}
public boolean isCddvd() {
return cddvd;
}
public void setCddvd(boolean cddvd) {
this.cddvd = cddvd;
}
public boolean isLivros() {
return livros;
}
public void setLivros(boolean livros) {
this.livros = livros;
}
public boolean isRevista() {
return revista;
}
public void setRevista(boolean revista) {
this.revista = revista;
}
public int getAno() {
return ano;
}
public void setAno(int ano) {
this.ano = ano;
}
public String getAssunto() {
return assunto;
}
public void setAssunto(String assunto) {
this.assunto = assunto;
}
public int getEdicao() {
return edicao;
}
public void setEdicao(int edicao) {
this.edicao = edicao;
}
public String getEditora() {
return editora;
}
public void setEditora(String editora) {
this.editora = editora;
}
public int getEstante() {
return estante;
}
public void setEstante(int estante) {
this.estante = estante;
}
public String getIndice() {
return indice;
}
public void setIndice(String indice) {
this.indice = indice;
}
public int getIsbn() {
return isbn;
}
public void setIsbn(int isbn) {
this.isbn = isbn;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public int getPrateleira() {
return prateleira;
}
public void setPrateleira(int prateleira) {
this.prateleira = prateleira;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
}
a minha action vou apenas passar o método de pesquisa.
public ActionForward pesquisar(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
CadastrarForm cadastrarForm = new CadastrarForm();
cadastrarForm.setAno(cadastrarPojo.getAno());
cadastrarForm.setAssunto(cadastrarPojo.getAssunto());
cadastrarForm.setAutor(cadastrarPojo.getAutor());
cadastrarForm.setEdicao(cadastrarPojo.getEdicao());
cadastrarForm.setEditora(cadastrarPojo.getEditora());
cadastrarForm.setEstante(cadastrarPojo.getEstante());
cadastrarForm.setIdcadastrar(cadastrarPojo.getIdcadastrar());
cadastrarForm.setIndice(cadastrarPojo.getIndice());
cadastrarForm.setIsbn(cadastrarPojo.getIsbn());
cadastrarForm.setTitulo(cadastrarPojo.getTitulo());
cadastrarForm.setCddvd(cadastrarPojo.isCddvd());
cadastrarForm.setLivros(cadastrarPojo.isLivros());
cadastrarForm.setRevista(cadastrarPojo.isRevista());
cadastrarDao.getCadastrarList(cadastrarPojo);
return mapping.findForward(SUCCESS);
}
o meu método DAO é este aqui.
public List getCdDvdList(CdDvdPOJO cdDvdPojo) {
Session session = HibernateUtil.getInstance().getSession();
try {
Query query = session.createQuery("select * from cadastrar");
return query.list();
} catch (HibernateException e) {
System.err.println("Hibernate Exception" + e.getMessage());
throw new RuntimeException(e);
} finally {
if (session != null) {
try {
session.close();
} catch (HibernateException e) {
System.err.println("Hibernate Exception" + e.getMessage());
throw new RuntimeException(e);
}
}
}
}