UNIVERSIDADE BANDEIRANTE DE SÃO PAULO (UNIBAN)

Propaganda
UNIVERSIDADE BANDEIRANTE DE SÃO PAULO (UNIBAN)
INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (ICET)
SÃO PAULO / SP – NOVEMBRO 2009
CURSO DE BACHARELADO EM SISTEMAS DE INFORMAÇÃO (3º ANO)
CURSO DE TECNÓLOGO EM PROCESSAMENTO DE DADOS (3º ANO)
DISCIPLINA: TÓPICOS AVANÇADOS DE PROGRAMAÇÃO
PROF. MSC. VLADIMIR CAMELO
E-MAIL:
[email protected]
SIMULADO PREPARATÓRIO PARA PROVA AC II
1. Quais as diferenças entre um ArrayList e um TreeSet?
R.ArrayList = È recomendado quando o tamanho da lista é previsível e as operações de inserção e remoção são feitas, em sua
maioria, no fim da lista, ou quando a lista é mais lida do que modificada.
Treeset = Usar quando precisar de um conjunto (de elementos únicos) que deve estar sempre ordenado, mesmo sofrendo modificações.
Não é possível indexar os elementos por índices numéricos como em um List.
2. Explique o que é o Mapeamento Objeto Relacional.
R. Possibilita a realização de persistência entre um objeto em uma aplicação Java para entidades relacionais (tabelas) em um banco
de dados relacional.
3. Quando devem ser utilizados EJB’s em uma aplicação?
R.Quando precisar desenvolver aplicações de regras de negócios baseadas em componentes distribuídos, que envolvam grandes
quantidades de dados e que são acessados por muitos usuários.
4. Explique o que é um SessionBean e um MessageDrivenBean.
R. São 2 dos 3 tipos de Enterprise Java Beans;
Session Bean representa a um único cliente no servidor de JEE, ou seja, o processo de negócio )regra de negócio).
MessageDriveBean permite que as aplicações JEE processem mensagens de modo assíncrono, funciona semelhante a um bloadcast
de menagem.
5. Explique o que é uma unidade de persistência no JPA.
R. Conjunto de classes mapeadas, por meio de arquivo de persistência XML, para um banco de dados relacional.
6. O CRUD é um conjunto de operações de persistência que podem ser realizadas em
um repositório de dados. O que significa a sigla CRUD?
R. C=Create
R=Retrieve
U=Update
D=Delete
7. Explique o que é um POJO.
R. POJO são classes simples escritas em Java. È a denominação que se dá a uma classe que em geral não deriva de nenhuma interface
ou classe, contém atributos privados, um construtor padrão sem argumentos, e métodos públicos get/set para acessar seus atributos.
8. O que são Metadados em um Entity?
R. Associados a cada Entity já alguma quantidade de metadados. Esses metadados permitem que a camada de persistência
reconheça, interprete e gerencie o entity de forma apropriada, desde o mapeamento em que ele é carregado até sua invocação em
tempo de execução
9. Explique o contexto de persistência (“Persist Context”).
R. è um conjunto de objetos/entidades gerenciadas por um EntityManager. Existem dois tipos: Transaction-Scoped e
ExtendedPersistence.
È o espaço de memória onde os objetos persistentes se encontram.
10.
Explique as diferenças entre um StateFul Session Bean e um Stateless
Session Bean.
R. StateFul
Stateless
-Cria MAIS de uma instância de objeto
-mantém o estado de conversasão com o cliente
-Podemos ter atributos com métodos getter e setters
-Cada cliente terá uma instãncia do EJB exclusiva.
Desde sua criação até sua remoção.
11.
cria APENAS uma instância de objeto
Não mantém o estado de conversasão com o cliente
Não se deve utilizar atributos de negócio, somente atributos
técnicos em rede.
È um EJB econômico
Cancelada – 1ª semestre
12.
Explique a diferença entre consultas Nomeadas (Estatísticas) e consultas
Dinâmicas.
R. Uma query estática pode ser definida através de uma anotação oi dentro de um arquivo XML pela criação de uma query
nomeada (namedQuery). Uma query dinâmica é criada durante a execução e por isso será um pouco mais custosa porque o JPA
Provider não poderá fazer nenhum tipo de otimização a priori.
13.
Crie uma classe de persistência chamada PersisteCliente para a tabela
apresentada abaixo. Omitir os métodos getters e setters.
R
import javax.persistence.*;
@Entity
@Table(name=”cliente”)
Public class PersisteCliente {
@Id @GeneratedValue
private integer idCliente;
private String nome;
private String endereco;
privatae String rg;
public PersisteCliente() { }
}
14.
Dado o programa abaixo implemente as seguintes rotinas neste programa:
a. Chamar o comando para mostrar a quantidade de registros no conjunto
b. Criar um looping por meio do Iterator para apresentar todos os elementos
R. //DENTRO DO MAIN
// A.
SYSTEM.OUT.PRINTLN(CONJUNTO.SIZE());
/ / B;
ITERATOR IT = CONJUNTO.ITERATOR();
WHILE(IT.HASNEXT()) {
STRING NOME = (STRING)IT.NEXT();
SYSTEM.OUT.PRINTLN(NOME);
}
15.
Com base na classe de persistência PersisteAluno escreva o código da
classe CriaAluno para armazenar um aluno e um RA no banco de dados:
R.
Public void criar() {
Entity transaction tx = em.getTransaction();
tx.begin
try {
persisteAluno aluno = new persisteAluno;
aluno.setNome(JOptionPane.showInputDialog(null, “nome,” 1));
aluno.setRa(Integer.parseInt(JOptionPane.showInputDialog(null, “RA”, 1));
tx.commit;
em.persist(aluno);
}
Catch (Exception ex) {
Tx.rollback();
}
16.
Escreva o código das entidades que podem mapear as seguintes tabelas no
banco de dados. Omita getters e setters.
DVD
number ID (PK)
varchar NOME (not null)
number CLI_ID
(FK(CLIENTE.ID))
@Entity
public class DVD {
@Id
private int Id. ;
private String nome;
.
.
.
@ManyToOne
@JoinColumn(name=”ID”)
CLIENTE
0..*
0..1
number ID (PK)
varchar NOME (not null)
varchar ENDERECO (not null)
@Entity
public class Cliente {
@Id
private int ID;
private String nome, endereco;
@OneToMany(mappedBy=”DVD”)
private List<DVD> dvdList=new
ArrayList<dvd>();
private Cliente clienete;
17.
Com base na figura abaixo explique o que é um gerenciador de entidades, no
contexto da Java Persistence API.
R. EntityManager são objetos que podem ser criados através das Unidades de Persistência; responsável por
quase todas as operações de persistência de objetos
18.
Com base na figura abaixo explique como funciona o ciclo de vida / Estado
de um objeto, no contexto da Java Persistence API. Explique os métodos que
controlam este ciclo de vida.
R. O clico de vida de uma entidade pode ser constituído por quatro estados: new, managed, removed e
detached, como mostrado na Figura..
Um objeto que se encontra no estado new pode ser definido como aquele que foi definido a partir do
operador new e que não possui um valor para o seu identificador persistente, por exemplo, aquele com um ciclo de
vida limitado ao tempo de vida do processo que o instanciou. Objetos neste estado também são conhecidos como
objetos transientes. Em outras palavras, o objeto não está associado ao EntityManager. Já um objeto no estado
managed é aquele que tem um valor definido para o seu identificador persistente e está associado a um contexto de
persistência. Assim, o EntityManager irá fazer com que a base de dados seja atualizada com novos valores dos
atributos persistentes no fim da transação. Por outro lado, existem objetos também associados a um contexto de
persistência, porém que estão “marcados” para serem excluídos da base de dados no final da transação, e assim
permanecendo no estado removed.
Por fim, também existem aqueles objetos que se encontram em um estado denominado detached, que
possuem registros correspondentes na base de dados, mas não estão associados a um contexto de persistência.
19.
Que tipo de relacionamento esta sendo
Explique.
R. relacionamento many-to-many, várias instâncias de uma
diversas instâncias de outra entidades.
Muitos atores podem ter muitos papéis e muitos papéis tem muitos atores.
realizado
entre
as
entidades?
entidade podem estar associadas com outras
20.
Explique com base na figura abaixo os tipos de relacionamentos existentes
entre as entidades.
Comunidade 1 ----- 1.* Papel Unidirecional Ono-To-Many  Uma comunidade tem uma ou muitos papéis;
Comunicade * ------ 1 Ator Unidirecional Many-To-One  uma comunidade tem um ator
Papel *-----* Ator Bidirecional Many-To-Many  muitos papéis tem muitos atores
Ator 1-----1 cadastro Unidirecional - Ony-To-Ony  um ator tem um cadastro.
21.
CANCELADA 1º SEMESTRE
22.
CANCELADA 1º SEMESTRE
23.
Qual annotation deve ser utilizada numa interface
definir que seus métodos serão acessíveis localmente?
SessionBeans,
para
a. @Local
b. @Stateless
c. @Remote
d. @Stateful
24.
Qual dos servidores abaixo é um exemplo de servidor EJB utilizado na
camada de negócio?
a. Internet Information Service
b. PersistServer
c. Java Server Business Application
d. JBoss
25.
Qual annotation deve-se utilizar para declarar uma classe como classe
persistente?
a. @AutoNumber
b. @Entity
c. @Identity
d. @GeneratedValue
26.
Quais são os tipos de Beans de Sessão (Session Beans)?
a. EntityBeans e MessageDriven
b. Persist e Transient
c. Stateful e Stateless
d. Temporário e Permanente
27.
Qual comando é utilizado para desfazer as alterações no banco de dados?
a. em.getTransacion( ).save( )
b. em.getTransacion( ).commit( )
c. em.getTransacion( ).close( )
d. em.getTransacion( ).rollback( )
28.
Em qual camada fica o servidor EJB?
a. Camada Cliente
b. Camada de Negócio
c. Camada EIS
d. Camada Web
29.
Sobre a collection TreeSet podemos afirmar que:
a. É um conjunto de elementos ordenados, no qual não existem
elementos repetidos.
b. É um conjunto de elementos não ordenados, no qual não existem elementos
repetidos.
c. É um conjunto de elementos ordenados. Há elementos repetidos.
d. É um conjunto de elementos não ordenados. Há elementos repetidos.
30.
Sobre o TreeSet podemos afirmar
a. Conjunto de elementos ordenados. Não há elementos repetidos.
b. Conjunto de elementos não ordenados. Não há elementos repetidos.
c. Conjunto de elementos ordenados. Há elementos repetidos.
d. Conjunto de elementos não ordenados. Há elementos repetidos.
31.
Comando utilizado para ordernar uma lista?
a. Collections.sort(lista)
b. Collections.random(lista)
c. Collections.shuffle(lista)
d. Collections.retainAll(lista)
32.
O que faz o comando “<property name =”toplink.ddl-generation” value =
“create-tables” />” declarado no arquivo persistence.xml?
a. Cria uma nova tabela no banco de dados sobreescrevendo a antiga
b. Cria uma nova tabela no banco de dados quando esta não
existir se existir simplesmente atualiza
c. Não executa nada, é apenas uma declaração informativa
d. Gera um script da tabela para atualizá-la no banco de dados
33.
Qual método é utilizado para retornar um registro do banco de dados e
transformá-lo em um objeto, com base em sua entidade de destino.
a. Entidade e = em.find(Entidade.class, chave)
b. Entidade e = em.findEntity(Entidade.class, chave)
c. Entidade e = em.find(chave, Entidade.class)
d. Entidade e = em.localFind(Entidade.class, chave)
34.
Qual anotação é utilizada para definir um atributo que não será armazenado
no banco de dados.
a. @Id
b. @Managed
c. @Transient
d. @Removed
35.
O que faz o comando “<persiste-unit name =”persistencia” />” declarado no
arquivo persistence.xml?
a. Definir o tipo da unidade de persistência
b. Definir o nome da unidade de persistência a ser utilizado pelo método
createEntityManagerFactory() que contém as configurações do banco de
dados.
c. Definir o nome da unidade de persistência a ser utilizado pelo método
createEntityManager () que contém as configurações do banco de dados
d. Definir o nome da unidade de persistência a ser utilizado
pela classe de persistência
36.
Qual comando é utilizado para eliminar uma entidade?
a. em.removeEntity(e)
b. em.elimina(e)
c. em.remove(e)
d. em.eliminaEntity(e)
37.
Um Session Bean sem estados não mantém um estado de conversação com o
cliente, apenas durante a chamada o estado é mantido e depois não é retido:
a. Stateless Session Bean
b. Stateful Session Bean
c. Entity Session Bean
d. MessageDriven Session Bean
38.
Qual dos seguintes comandos cria uma fábrica de gerenciadores de entidade?
a. EntityManagerFactory
emf
tence.createEntityManagerFactory(“teste”);
=
b. EntityManager em = emf.createEntityManager();
c. EntityTransaction trans = em.getTransaction();
d. Aluno a = new Aluno();
39.
Quais as opções que temos para acessar um banco de dados usando JPA?
a. SQL nativa
b. SQL nativa e JPA QL
c. SQL nativa, JPA QL e método find
d. SQL nativa, JPA QL, método find e método executeQuery
Persis-
40.
Qual das alternativas abaixo NÃO é uma justificativa para o uso de EJB?
a. Quando a aplicação deve ser implementada em três camadas, facilitando a
sua manutenção e distribuição.
b. Quando a aplicação deve ser escalável, tanto por possuir um número
crescente de usuários, como a aplicação pode estar distribuída em
múltiplas máquinas.
c. Quando
transações
são
integridade dos dados.
necessárias
para
garantir
a
d. Quando a aplicação possuir um alto número de clientes. Como a lógica de
negócio fica nos componentes do lado servidor, a manutenção é
facilitada.
41.
São estados do ciclo de vida de uma entidade:
a. New, Managed, Persisted, Refreshed
b. New, Managed, Removed, Detached
c. New, Removed, Recalled, Commited
d. Merged, Removed, Persisted, New
42.
São métodos da interface Entity Manager:
a. createQuery(), createNamedQuery(), delete(), cancelTransaction()
b. begin(), create(), refresh(), delete()
c. commit(), rollback(), merged(), detached()
d. refresh(), merge(), persist(), remove()
43.
O padrão DAO é utilizado para?
a. Separar a lógica de Negócios do resto da aplicação.
b. Permitir que a aplicação execute em um servidor de aplicações.
c. Transportar objetos pela rede de forma otimizada.
d. Encapsular o acesso ao banco de dados.
44.
Dentro do Contexto de Persistência, quando uma entidade NÃO está sendo
controlada pelo EntityManager, ou seja, alterações na entidade não serão
refletidas no banco de dados, dizemos que ela está no estado:
a. DETACHED
b. MANAGED
c. NEW
d. CONTROLED
45.
Observe o código abaixo e identifique qual o tipo de construção a que ele
se refere:
a. Trata-se de uma Consulta Nomeada (estática), na qual as
definições são feitas no nível da entidade
b. Trata-se de uma Consulta Dinâmica na qual será retornado um resultset
que será recuperado pelo método getResultList()
c. Trata-se de uma Alteração em Lote a ser gerenciada pelo Gerenciador e
Entidades e executada através do método executeUpdate()
d. Nehuma das respostas acima está totalmente correta
46.
Associe a coluna da esquerda com a direita:
(1) @Entity
(2) @Table
(3) @Id
(4) @GeneratedValue
(5) @Transient
(6) @Column
Define um campo auto-incremento
Define que um atributo não será salvo no banco de
dados
Define o atributo que constitui a chave primária
Define o nome da tabela onde os objetos serão
persistidos
Marca uma classe como entidade persistente que deve
possuir um construtor sem parâmetros
Define o nome da coluna onde o atributo será salvo
a. 1, 5, 3, 2, 4, 6
b. 4, 5, 3, 2, 1, 6
c. 5, 4, 1, 3, 2, 6
d. 4, 2, 3, 2, 5, 6
47.
Método da interface javax.persistence.Query
consulta nomeada (estática):
utilizado
para
criar
uma
a. createPersistedQuery()
b. createNamedQuery()
c. createQuery()
d. createListQuery()
48.
Observe o trecho de código abaixo: na classe Pessoa.java foi
evento de retorno de chamada para gravação de uma auditoria
executada logo após a inserção de um registro no Banco de Dados
a anotação correta a ser aplicada neste caso para o trecho
código?
adicionado um
que deve ser
Qual deve ser
sublinhado no
a.
b.
c.
d.
49.
PrePersist
PostPersist
PreUpdate
PostUpdate
Qual a vantagem de utilizarmos aplicações multicamadas? Desenhe um
diagrama que represente graficamente as camadas envolvidas nesta forma de
desenvolvimento.
Horizontais
2. Exemplo de um fornecedor de provedores de persistência
4. Sigla que representa Enterprise Java Beans
6. Conhecidos como beans de sessão
8. Anotação utilizada para marcar uma classe como entidade persistente que deve
possuir um construtor sem parâmetros (não escreva o @)
9. As alterações em Lote são executadas através do método ___________ que
retorna o número de linhas afetadas
10. A arquitetura JPA usa amplamente __________ e está baseada no conceito POJO
12. Sigla para Plain Old Java Object.
13. Método da interface Collections para recuperar qualquer objeto em uma
posição da lista
14. A exceção IndexOutOf_____Exception é disparada quando tenta-se acessar um
elemento da que está fora dos limites definidos
15.Qual o valor retornado pelo método size() no código abaixo?
ArrayList lista = new ArrayList(3);
int i = lista.size();
Verticais
1. Método da interface Iterator que indica que ainda há elementos a serem
percorridos na Coleção ou ResultSet
3. É um servidor de aplicação de código aberto baseado na plataforma
J2EE
5. Método da classe EntityManager utilizado para criar consultas dinâmicas
7. Método da classe EntityManager utilizado para criação de consultas nomeadas
11. A classe ________ permite percorrer todos os elementos de uma lista e
possui os métodos hasNext() e next()
R:
HORIZONTAIS:
2) hibernate
4) ejb
6) sessionbeans
8) entity
9) executeupdate
10) annotations
12) pojo
13) get
14) bounds
15) zero
VERTICAIS
1) hasnext
3) jboss
5) createquery
7) createnamedquery
11) iterator
Download