Hibernate

5 respostas
diogoprosoft

Galera preciso fazer com que ao digitar o idconta e clicar em buscar apareça os dados no formulario jsp, como faço isso

Estou usando struts, hibernate annotations e postgresql

5 Respostas

fiaux

Que tal uma query no banco de dados?

diogoprosoft

É eu poderia usar um select, mais estou tentanto não usar codigo sql deixando tudo para o hibernate, mais como posso fazer isso setando no formulario os dados, ouvi falar em criteria mais como trazer o resultado pro formulario

Bem facil entender o que eu quero faço algo no DAO chamo na action e digito o codigo que eu quero buscar no formulario no campo id, clico em buscar e aparece os dados no formulario, o problema e como fazer isso

fiaux

Aí depende de como você organizou as coisas. Use o hibernate, ou use o Criteria ou use HQL. Sua action chama sua camada de persistência para recuperar os dados, os dados são retornados, e você exibe na jsp.

diogoprosoft

É isso mesmo que eu preciso vc pode me dar um exemplo de como fazer isso?

Vou colocar meu codigo para vc dar uma olhada

JSP

<html:form action="conta" focus="idconta">            
            Id:<html:text property="idconta"/>
            Data_Cadastro<html:text property="datacadastro"/>
            Nome:<html:text property="nome"/>
            Obs:<html:text property="obs" />
            <html:submit property="method" ><bean:message key="button.salvar" /></html:submit>
            <html:submit property="method" ><bean:message key="button.deletar" /></html:submit>
        </html:form>

ACTION

public class ContaAction extends LookupDispatchAction{
    
private final static String SUCCESS = "success";    
           
    protected Map getKeyMethodMap(){
        Map map = new HashMap();
        map.put("button.salvar", "salvar");
        map.put("button.deletar", "deletar");
        return map;
    }

    public ActionForward salvar(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        
        HttpSession session = request.getSession();
        
        ContaForm contaForm = (ContaForm) form;
        Conta conta = new Conta();
        BeanUtils.copyProperties(conta, contaForm);
        
        PersistenciaDAO persistencia = new PersistenciaDAO();
        
        persistencia.salvar(conta);
        
        return mapping.findForward(SUCCESS);        
                
    }
    
    public ActionForward deletar(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
           
        HttpSession session = request.getSession();
        
        ContaForm contaForm = (ContaForm) form;
        Conta conta = new Conta();
        BeanUtils.copyProperties(conta, contaForm);
        
        PersistenciaDAO persistencia = new PersistenciaDAO();
        
        persistencia.deletar(conta);
        
        return mapping.findForward(SUCCESS);        
                
    }

DAO

public class PersistenciaDAO {                   
    
    public void salvar(Object object) throws Exception{
                        
       Session sessao = HibernateFactory.getSession();
       Transaction transacao = sessao.beginTransaction();
        
       sessao.saveOrUpdate(object);
       sessao.flush();
       transacao.commit();
       sessao.close();
       
    }
    
    public void deletar(Object object) throws Exception{
        
       Session sessao = HibernateFactory.getSession();
       Transaction transacao = sessao.beginTransaction();
        
       sessao.delete(object);
       sessao.flush();
       transacao.commit();
       sessao.close();
        
    }        
    
}

Struts-config

<action-mappings>
        <action input="/conta.jsp" name="ContaForm" parameter="method" path="/conta" scope="request" type="conta.action.ContaAction"/>        
    </action-mappings>

Agradeço por estar me ajudando :smiley:

fiaux

Cara, você precisa pegar o id que foi colocado na página através de sua action, na action você vai ter o seu dao que recupera Conta, você vai ter um método no dao para recuperar esse dado usando o id dele como parâmetro.
Você cria um método Conta get(Long id) no seu dao, usa o get do Session do hibernate mesmo para recuperar, ou então usa Criteria, mas para esse caso chega a ser desnecessário.

Object get(Class clazz, Serializable id)
Return the persistent instance of the given entity class with the given identifier, or null if there is no such persistent instance.

<blockquote>Criteria crit = sess.createCriteria(Cat.class);

crit.setMaxResults(50);

List cats = crit.list();</blockquote>

http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html
http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html

Criado 7 de junho de 2008
Ultima resposta 7 de jun. de 2008
Respostas 5
Participantes 2