package br.usp.ime.academicdevoir.dao; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; import java.sql.Connection; import br.com.caelum.vraptor.ioc.Component; import br.usp.ime.academicdevoir.entidade.Professor; import br.usp.ime.academicdevoir.entidade.Usuario; @Component public class ProfessorDao { /** * @uml.property name="session" * @uml.associationEnd multiplicity="(1 1)" */ private final Session session; public ProfessorDao(Session session) { this.session = session; } /** * Cadastra o professor fornecido no banco de dados. * * @param professor */ @SuppressWarnings("unchecked") public void salvaProfessor(Professor professor) { String login = professor.getLogin(); List<Usuario> listaDeUsuarios = session.createCriteria(Usuario.class) .add(Restrictions.like("login", login, MatchMode.EXACT)) .list(); if (listaDeUsuarios.size() != 0) return; Transaction tx = session.beginTransaction(); session.save(professor); tx.commit(); } /** * Atualiza o professor fornecido no banco de dados. * * @param professor */ public void atualizaProfessor(Professor professor) { Transaction tx = session.beginTransaction(); session.update(professor); tx.commit(); } /** * Remove o professor fornecido do banco de dados. * * @param professor */ public void removeProfessor(Professor professor) { Transaction tx = session.beginTransaction(); session.delete(professor); tx.commit(); } /** * Devolve um Professor com o id fornecido. * * @param id * @return Professor */ public Professor carrega(Long id) { return (Professor) session.load(Professor.class, id); } @SuppressWarnings("unchecked") /** * Devolve uma lista com todos os professore cadastrados no banco de dados. * * @return List<Professor> */ public List<Professor> listaTudo() { String nome = "SELECT p FROM Professor p"; Query query = session.createQuery(nome); List<Professor> listaDeProfessores = query.list(); return listaDeProfessores; } public void alteraTipo(Long id) { try { Connection conexao = DriverManager.getConnection( "jdbc:mysql://localhost:3306/engsoft", "root", "root123"); String s = "UPDATE Usuario SET DTYPE='professor' WHERE id=7"; PreparedStatement comando = conexao.prepareStatement(s); comando.execute(); conexao.close(); } catch (Exception e) { e.printStackTrace(); } } }