




















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
AOP, JPA, Hibernate, Programação Orientada a Aspectos, Apresentação TCC
Tipologia: Teses (TCC)
1 / 28
Esta página não é visível na pré-visualização
Não perca as partes importantes!





















ADAILTON PIMENTEL REIS PROGRAMAÇÃO ORIENTADA A ASPECTOS COM PERSISTÊNCIA NO DESENVOLVIMENTO DE SISTEMAS ARAPIRACA, 18 DE DEZEMBRO DE 2007
SUMÁRIO
1.1 CONCEITO 1.2 PERSISTÊNCIA VIA JDBC X PERSISTÊNCIA AUTOMATIZADA
2.1 PROBLEMAS DA ORIENTAÇÃO A OBJETOS 2.2 CONCEITO, OBJETIVO E BENEFÍCIOS 2.3 SEPARAÇÃO DE INTERESES 2.4 COMPONENTES PRINCIPAIS DA ORIENTAÇÃO A ASPECTOS 2.5 COMBINAÇÃO ASPECTUAL
3.1 FERRAMENTA HIBERNATE 3.2 FERRAMENTA ASPECTJ 3.3 ESTUDO DE CASO
1 PERSISTÊNCIA DE DADOS
1.1 CONCEITO
2 PROGRAMAÇÃO ORIENTADA A ASPECTOS
2.1 PROBLEMAS DA ORIENTAÇÃO A OBJETOS
EXEMPLO DE CÓDIGO ESPALHADO public class Conta { private String num; protected double saldo; public double getSaldo (){ Log.registrar(“Conta”,num, “getSaldo”); return saldo; } public void sacar (double valor){ if(saldo >= valor && valor > 0) Log.registrar(“Conta”,num, “sacar”); saldo = saldo – valor; } public void depositar (double valor){ if(valor > 0) Log.registrar(“Conta”,num, “depositar”); Saldo = saldo + valor; } }
2.2 CONCEITO, OBJETIVO E BENEFÍCIOS
Figura 2 – Interesses de Login no TomCat Fonte: JUNIOR, Vicente Goetten; WINCK, Diogo Vinícius
Configuration cfg = new AnnotationConfiguration() ; cfg. configure (“hibernate.cfg.xml”); SessionFactory sessions = cfg. buildSessionFactory() ; Session session = sessions. openSession() ; Transaction tx = null; tx = session. beginTransaction() ; Criteria criteria = session.createCriteria (User.class); criteria. add (Expression. like (“firstname”,”Max”)); List result = criteria. list (); Query q = session.createQuery (“from User u where u.firstname = :fname”); q. setString (“fname”,”Max”); List result = q. list() ;
public class Pessoa { private int cod_cliente; private String nome; public Pessoa ( ) { } public String getNome() { return nome; } public void setNome (String nome) { this .nome = nome; } public int getCod_cliente() { return cod_cliente; } }
@Entity Indica que a classe é um entity bean (classe entidade) a ser persistida @Id Declara o identificador da entidade. Se refere à chave primária na tabela. @Table Mapeia o nome da tabela. @Column Mapeia os atributos da classe entidade para colunas na tabela. @ManyToOne Associação “muitos para um”, define a chave estrangeira de uma tabela, tendo como referência a tabela de destino. @OneToMany Associação “um para muitos”, tendo como referência a tabela de origem. @JoinColumn Define qual é a coluna que fará a ligação entre as tabelas, onde o atributo name se refere ao nome da coluna indicado no modelo relacional.