Oi pessoal, esse mes eu terminei meu primero programa (finalmente) e usei annotations e DAO… mas eu fiz pra cada entidade q eu tenho no programa… entao busquei sobre um DAO generico que pudesse aplicar futuramente, e me peguei pensando se meu DAO estava correto, pq meio que fiz olhando 1 de um amigo que ja estava pronto, entao venho aqui pra pedir q vcs olhem minhas classes e digam se fiz corretamente, se for possivel.
Classe CTR_ManterCurso:
public class CTR_ManterCurso {
FactoryDAO factory;
CursoHibernateDAO cursoHibernateDAO = new CursoHibernateDAO();
public CTR_ManterCurso(FactoryDAO factory) {
this.factory = factory;
}
public boolean excluirCurso(Curso curso) {
try {
cursoHibernateDAO.excluir(curso);
return true;
} catch (ConstraintViolationException e) {
JOptionPane.showMessageDialog(null, "Não foi possivel excluir o cursoo. Existem referencias a ele em outras tabelas.");
return false;
}catch (HibernateException e) {
e.printStackTrace();
return false;
}
}
public boolean alterarCurso(Curso curso) {
try {
cursoHibernateDAO.alterar(curso);
return true;
} catch (HibernateException e) {
e.printStackTrace();
return false;
}
}
public boolean gravarCurso(Curso curso) {
try {
cursoHibernateDAO.gravar(curso);
return true;
} catch (HibernateException e) {
e.printStackTrace();
return false;
}
}
public List listarCursos(String ordem) {
List<Curso> cursos;
try {
return cursos = cursoHibernateDAO.listarCursos(ordem);
} catch (HibernateException e) {
return null;
}
}
public List removerCursos(String ordem) {
List<Curso> cursos;
try {
return cursos = cursoHibernateDAO.removerCursos(ordem);
} catch (HibernateException e) {
return null;
}
}
public Curso carregarUmCurso(Integer codigo) {
try {
Curso curso = new Curso();
return curso = (Curso) cursoHibernateDAO.carregarUm(codigo);
} catch (HibernateException e) {
e.printStackTrace();
return null;
}
}
public Curso carregarUmCurso(String nome) {
try {
Curso curso = new Curso();
return curso = (Curso) cursoHibernateDAO.carregarUm(nome);
} catch (HibernateException e) {
e.printStackTrace();
return null;
}
}
}
Classe CursoDAO
public interface CursoDAO {
public Curso carregarUm(Integer idCurso) throws HibernateException;
public Curso carregarUm(String nomeCurso) throws HibernateException;
public void alterar(Curso curso1) throws HibernateException;
public void excluir(Curso curso1) throws HibernateException;
public void gravar(Curso curso1) throws HibernateException;
public List listarCursos(String ordem) throws HibernateException;
public List removerCursos(String ordem) throws HibernateException;
}
Classe CursoHibernateDAO
public class CursoHibernateDAO implements CursoDAO {
private HibernateConfiguracao hibernateConfiguracao;
/** Creates a new instance of ClienteHibernateDAO */
public CursoHibernateDAO() {
super();
hibernateConfiguracao = new HibernateConfiguracao();
}
public Curso carregarUm(Integer idCurso) throws HibernateException {
Session session = new HibernateFactory().getSession();
session.getTransaction().begin();
Criteria criteria = session.createCriteria(Curso.class);
criteria.add(Expression.eq("cod_curso", idCurso));
Curso curso1 = (Curso) criteria.uniqueResult();
session.getTransaction().commit();
session.close();
return curso1;
}
public Curso carregarUm(String nomeCurso) throws HibernateException {
Session session = new HibernateFactory().getSession();
session.getTransaction().begin();
Criteria criteria = session.createCriteria(Curso.class);
criteria.add(Expression.eq("nome", nomeCurso));
Curso curso1 = (Curso) criteria.uniqueResult();
session.getTransaction().commit();
session.close();
return curso1;
}
public List listarCursos(String ordem) throws HibernateException {
Session session = new HibernateFactory().getSession();
Criteria criteria = session.createCriteria(Curso.class);
criteria.addOrder(Order.asc(ordem));
return criteria.list();
}
public List removerCursos(String ordem) throws HibernateException {
Session session = new HibernateFactory().getSession();
Criteria criteria = session.createCriteria(Curso.class);
criteria.addOrder(Order.asc(ordem));
return criteria.list();
}
public void gravar(Curso curso1) throws HibernateException {
// Session session = new HibernateFactory().getSession();
// session.getTransaction().begin();
// session.save(curso);
// session.getTransaction().commit();
// session.close();
Session session = new HibernateFactory().getSession();
Transaction tx = session.beginTransaction();
session.save(curso1);
tx.commit();
session.close();
}
public void alterar(Curso curso1) throws HibernateException {
Session session = new HibernateFactory().getSession();
Transaction tx = session.beginTransaction();
Curso curso2 = new Curso();
curso2 = (Curso) session.get(Curso.class, curso1.getCodigo());
curso2.setNome(curso1.getNome());
curso2.setReferencia(curso1.getReferencia());
tx.commit();
session.close();
}
public void excluir(Curso curso1) throws HibernateException {
Session session = new HibernateFactory().getSession();
session.getTransaction().begin();
try {
session.delete(curso1);
} catch (ConstraintViolationException e) {
JOptionPane.showMessageDialog(null, "Não foi possivel excluir o curso. Existem referencias a ele em outras tabelas.");
}
session.delete(curso1);
session.getTransaction().commit();
session.close();
}
}
n sei se to pedindo dimais, mas kero ter certeza de que estou fazendo certo
Vlw