com.esales.model.ModelDAO.java Source code

Java tutorial

Introduction

Here is the source code for com.esales.model.ModelDAO.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.esales.model;

import com.esales.util.MinhaFazendaHibernateUtil;
import java.util.ArrayList;
import org.hibernate.ObjectNotFoundException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

/**
 *
 * @author cleverton
 */
public class ModelDAO {

    //
    private final SessionFactory objSessionFactory;

    //String para mensagem de erro
    String msg = "";

    public ModelDAO() {
        //Recebe o Session Factory do HIbernate
        this.objSessionFactory = MinhaFazendaHibernateUtil.getSessionFactory();
    }

    public String insert(SystemUser obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ADICIONA o objeto, assim o hibernate persiste no bancoapagando o registro.
            objSession.save(obj);
            //Realiza um commit do INSERT
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            this.msg = e.getMessage();
            //Realiza o Rollback, cancelando o INSERT no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return this.msg;
    }

    public String update(SystemUser obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //ATUALIZA o objeto, assim o hibernate persiste no bancoapagando o registro.
            objSession.merge(obj);
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            msg = e.getMessage();
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }

        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return msg;
    }

    public String delete(SystemUser obj) {
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();
        //Inicia uma transao dentro da sesso aberta
        Transaction objTransaction = objSession.beginTransaction();

        try {
            //Cria QUERY para excluir o registro
            Query query = objSession.createQuery("delete SystemUser where id = :id");
            //Seta os parmetros
            query.setParameter("id", obj.getId());
            //Executa a QUERY
            query.executeUpdate();
            //Realiza um commit do UPDATE
            objTransaction.commit();
        } catch (Exception e) {
            //Caso ocorrer algum erro, mostra uma mensagem
            msg = e.getMessage();
            //Realiza o Rollback, cancelando o UPDATE no banco de dados.
            objTransaction.rollback();
        }
        //Fecha a sesso
        objSession.close();
        //Retorna a mensagem
        return msg;
    }

    public ArrayList<SystemUser> findByAll() {
        //Cria lista de objetos
        ArrayList<SystemUser> lstUsuario = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();

        try {
            Query objQuery = objSession.createQuery("from SystemUser");
            lstUsuario = (ArrayList<SystemUser>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }
        //Fecha a sesso
        objSession.close();
        //Retorna lista
        return lstUsuario;
    }

    public SystemUser findById(int id) {
        //Cria lista de objetos
        SystemUser objUsuario = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();

        try {
            objUsuario = (SystemUser) objSession.load(SystemUser.class, id);
        } catch (ObjectNotFoundException e) {
            return null;
        }
        //Retorna objeto Usuario
        return objUsuario;
    }

    public ArrayList<SystemUser> findByDescricao(String descricao) {
        //Cria lista de objetos
        ArrayList<SystemUser> lstUsuario = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();

        try {
            Query objQuery = objSession.createQuery("from SystemUser where name like '%" + descricao + "%'");
            lstUsuario = (ArrayList<SystemUser>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }
        //Fecha a sesso
        objSession.close();
        //Retorna lista de Usuarios
        return lstUsuario;
    }

    public ArrayList<SystemUser> findByValidarUsuario(String descricao, String senha) {
        //Cria lista de objetos
        ArrayList<SystemUser> lstUsuario = null;
        //Abre um sesso
        Session objSession = this.objSessionFactory.openSession();

        try {
            Query objQuery = objSession.createQuery(
                    "from SystemUser where login = '" + descricao + "' and password = '" + senha + "'");
            lstUsuario = (ArrayList<SystemUser>) objQuery.list();
        } catch (ObjectNotFoundException e) {
            return null;
        }
        //Fecha a sesso
        objSession.close();
        //Retorna lista de Usuarios
        return lstUsuario;
    }

}