Exercícios - Turma 3B - Sistemas de Informação

Propaganda
1.a) Dado o trecho de código abaixo, informe qual será a saída gerada.
List<String> lista = new ArrayList<String>();
lista.add("Maria");
lista.add("José");
lista.add("Joaquim");
lista.remove("José");
System.out.println(lista.size() + lista);
1.b) Dado o trecho de código abaixo, informe qual será a saída gerada.
TreeSet<String> lista = new TreeSet<String>();
lista.add("Maria");
lista.add("José");
lista.add("Ana");
lista.add("Maria");
System.out.println(lista.size() + lista);
1.c) Dado o trecho de código abaixo, informe qual será a saída gerada.
List<String> lista = new LinkedList<String>();
lista.add("Maria");
lista.add("José");
lista.add("Ana");
lista.add("Maria");
System.out.println(lista.size() + lista);
2.a) Criar um método exibir( ) que recebe uma LinkedList de strings chamada “lista”
e exibe através do método System.out.println( ) todos os elementos dessa lista. O
percurso na lista deve ser feito através de um iterador (java.util.Iterator).
2.b) Criar um método exibir( ) que recebe um ArrayList de strings chamado “lista” e
exibe através do método System.out.println( ) todos os elementos dessa lista. O
percurso na lista deve ser feito através de um iterador (java.util.Iterator).
2.c) Criar um método exibir( ) que recebe um TreeSet de strings chamado “conjunto”
e exibe através do método System.out.println( ) todos os elementos desse conjunto.
O percurso no conjunto deve ser feito através de um iterador (java.util.Iterator).
3.a) Descreva uma situação em uma aplicação distribuída onde é recomendável
utilizar um StateLess SessionBean?
3.b) Qual a principal diferença entre um StateFul SessionBean e um StateLess
SessionBean?
3.c) Qual a principal função de um MessageDrivenBean?
3.d) Qual a principal diferença ente um EntityBean e um SessionBean?
4.a,b,c,d) Explique resumidamente o que faz cada linha de código abaixo:
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("unidade");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Aluno a = new Aluno();
a.setNome(“Maria”);
em.persist(a);
em.getTransaction().commit();
5.a) Com base no diagrama de classes e no modelo de banco de dados abaixo,
escreva o código da classe de entidade:
5.b) Com base no diagrama de classes e no modelo de banco de dados abaixo,
escreva o código da classe de entidade:
5.c) Com base no diagrama de classes e no modelo de banco de dados abaixo,
escreva o código da classe de entidade:
7.a) Qual a função do Gerenciador de Entidades na JPA?
7.b) O que é uma Unidade de Persistência na JPA?
7.c) Qual é o nome do arquivo descritor de implantação em que as Unidades de
Persistência na JPA são descritas?
7.d) O que significa Contexto de Persistência na JPA?
6.a,b,c,d) De acordo com o padrão MVC, as aplicações são divididas em três partes:
Model, View e Controler que representam respectivamente:
a- Classes de Apresentação, Classes de Dados, Lógica de Negócios
b- Classes de Dados, Lógica de Negócios, Classes de Apresentação
c- Classes de Dados, Classes de Apresentação, Lógica de Negócios
d- Lógica de Negócios, Classes de Apresentação, Classes de Dados
6.a) Qual classe deve ser utilizada para armazenamento de informações com as
seguintes características:
Os elementos não podem se repetir, e quando recuperados, deverão estar
classificados.
a- ArrayList
b- HashSet
c- TreeSet
d- LinkedList
6.b) Qual classe é mais indicada para armazenamento de informações com a
seguinte característica:
Serão freqüentemente inseridos e removidos elementos nas extremidades da
estrutura (no início e no final).
a- HashSet
b- LinkedList
c- ArrayList
d- TreeSet
6.c) Qual classe é mais indicada para armazenamento de informações com as
seguintes características:
A quantidade de elementos muda raramente e os elementos serão
recuperados através de seu índice.
a- LinkedList
b- ArrayList
c- TreeSet
d- HashSet
6.d) Qual classe é mais indicada para armazenamento de informações com as
seguintes características:
A quantidade de elementos muda com freqüência, os elementos não podem
se repetir e não há a necessidade de estarem classificados.
a- TreeSet
b- LinkedList
c- HashSet
d- ArrayList
7.a) Unidade de Persistência na JPA significa:
a- Uma única entidade que está sendo persistida no Banco de Dados.
b- Conjunto de classes mapeadas para um banco de dados relacional.
c- Unidade de processamento onde as entidades são persistidas.
d- Ambiente onde as entidades são gerenciadas.
7.b) Na JPA, Gerenciador de Entidades significa:
a- Driver que gerenciará a persistência das entidades.
b- Serviço que gerenciará a conexão diretamente com o Banco de Dados.
c- Serviço que gerenciará o conjunto de entidades registradas dentro de um
Contexto de Persistência.
d- Outro nome para o Driver JDBC.
7.c) Contexto de Persistência na JPA significa:
a- Ambiente (sessão) que envolve o conjunto de instâncias de entidades
gerenciadas pelo Entity Manager.
b- Aplicação que utiliza entidades persistentes.
c- Ambiente de desenvolvimento de aplicações que utilizam a JPA.
d- Container onde os Enterprise JavaBeans são executados.
7.d) Provedor de Persistência (Persistence Provider) na JPA é:
a- Nome genérico que é dado ao Banco de Dados.
b- Serviço que gerenciará o conjunto de entidades registradas dentro de um
Contexto de Persistência.
c- Unidade de processamento onde as entidades são persistidas.
d- A implementação das interfaces da JPA.
8.a) Qual é a anotação que define que uma classe será persistida na JPA?
a- @Table
b- @Entity
c- @Persist
d- @Class
8.b) Qual é a anotação que define o nome da tabela onde as entidades de uma
classe serão persistidas?
a- @TableName
b- @Name
c- @Table
d- @DBTable
8.c) Qual é a anotação que define o nome da coluna onde um atributo de uma
classe será persistido?
a- @Column
b- @ColumnName
c- @FieldName
d- @Atribute
8.d) Qual é a anotação que define o atributo de chave primária da entidade?
a- @PrimaryKey
b- @Identity
c- @IdColumn
d- @Id
9.a) Qual código abaixo representa a criação de um Gerenciador de Entidades?
a- EntityManager em = fabrica.getEntityManager();
b- EntityManager em = fabrica.createEntityManager();
c- EntityManager em = fabrica.newEntityManager();
d- EntityManager em = fabrica.createNewEntityManager();
9.b) Qual código abaixo representa a definição de início de uma transação?
a- EntityManager.beginTransaction();
b- EntityManager.getTransaction().start();
c- EntityManager.startTransaction();
d- EntityManager.getTransaction().begin();
9.c) Qual método abaixo torna um objeto de entidade gerenciável pelo Gerenciador
de Entidades?
a- EntityManager.persist();
b- EntityManager.save();
c- EntityManager.managed();
d- EntityManager.linked();
9.d) Qual método abaixo elimina uma entidade do Banco de Dados?
a- EntityManager.erase();
b- EntityManager.kill();
c- EntityManager.remove();
d- EntityManager.delete();
10.a) Qual é a anotação que define que um atributo será auto-incrementado?
a- @Identity
b- @Auto_Increment
c- @GeneratedValue
d- @AutoValue
10.b) Qual pacote deve ser importado em uma classe que utiliza JPA?
a- javax.ejb.persistence
b- javax.persistence
c- javax.jpa
d- javax.sql.persistence
10.c) A interface responsável pela execução de consultas tanto dinâmicas como
nomeadas é:
a- javax.persistence.EntityManager
b- javax.persistence.Select
c- javax.persistence.ExecuteQuery
d- javax.persistence.Query
10.d) Qual é o método da interface javax.persistence.Query que executa uma
consulta e retorna um único objeto como resultado?
a- getSingleResult()
b- getSingleQuery()
c- getUniqueResult()
d- executeQuery()
11.a) Qual é o método da interface javax.persistence.EntityManager que cria uma
consulta identificada?
a- createIdentityQuery()
b- createQuery()
c- createNamedQuery()
d- createDefinedQuery()
11.b) Dentro do Contexto de Persistência, quando uma entidade está sendo
controlada pelo EntityManager, ou seja, alterações na entidade serão refletidas no
banco de dados, dizemos que ela está no estado:
a- DETACHED
b- MANAGED
c- NEW
d- CONTROLED
11.c) 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
11.d) Dentro do Contexto de Persistência, no momento imediatamente após a
criação de uma entidade, dizemos que esta entidade está no estado:
a- DETACHED
b- MANAGED
c- NEW
d- CONTROLED
12.a) São características de um Stateless SessionBean:
a- Podem ser disponibilizados através de um pool; podem ser apassivados.
b- Não Podem ser disponibilizados através de um pool; não possuem
informações de estado.
c- Podem ser disponibilizados através de um pool; possuem informações de
estado.
d- Podem ser disponibilizados através de um pool; não possuem informações
de estado.
12.b) São características de um Stateful SessionBean:
a- Podem ser disponibilizados através de um pool; podem ser apassivados.
b- Não Podem ser disponibilizados através de um pool; não possuem
informações de estado.
c- Não Podem ser disponibilizados através de um pool; possuem
informações de estado.
d- Podem ser disponibilizados através de um pool; não possuem informações
de estado.
12.c) São características de um EntityBean:
a- Representam as regras de negócio.
b- Representam o modelo da aplicação(os dados).
c- Representam processos assíncronos.
d- Modelam o fluxo de trabalho na aplicação.
12.d) São características de um SessionBean:
a- São utilizados para controlar as mensagens em uma sessão.
b- São utilizados para modelar os dados da aplicação.
c- São utilizados para modelar as regras de negócio da aplicação.
d- São utilizados para gerenciar os dados de uma sessão.
13.a) Os Enterprise JavaBeans são componentes utilizados em:
a- Aplicações Distribuídas.
b- Aplicações Cliente-Servidor onde a comunicação é baseada somente em
sockets.
c- Aplicações Desktop com uso de Swing.
d- Aplicações Desktop que fazem uso intenso de bancos de dados.
13.b) A JPA é uma tecnologia de acesso a dados que:
a- Pode ser utilizada apenas em Aplicações Distribuídas.
b- Pode ser utilizada tanto em Aplicações Distribuídas como Aplicações
Desktop.
c- Pode ser utilizada apenas em Aplicações Desktop.
d- Pode ser utilizada apenas em aplicações que “rodam” dentro de um
Contêiner EJB.
13.c) Aplicações que utilizam Enterprise JavaBeans são executadas:
a- Em um contêiner EJB.
b- Em um contêiner Web.
c- Em um contêiner JPA.
d- Tanto em um contêiner EJB como em um contêiner Web.
13.d) Para se utilizar a tecnologia JPA:
a- É necessário o uso de um contêiner Web.
b- É necessário o uso de um Provedor de Persistência.
c- É necessário o uso de um contêiner EJB.
d- É necessário o uso de uma Interface Gráfica.
14.a) São anotações utilizadas em beans de sessão:
a- @Entity e @ID
b- @Stateless e @Table
c- @Stateful e @Stateless
d- @Remote e @Column
14.b) São anotações utilizadas em beans de entidade:
a- @Stateless e @Table
b- @Column e @ID
c- @Stateful e @Stateless
d- @Remote e @Column
14.c) São anotações utilizadas em beans de sessão:
a- @Stateless e @Table
b- @Entity e @ID
c- @Stateful e @Local
d- @Remote e @Column
14.d) São anotações utilizadas em beans de sessão:
a- @Stateless e @Remote
b- @Entity e @ID
c- @Stateful e @Entity
d- @Remote e @Column
15.a) Os componentes EJB fazem parte da:
a- Camada Cliente
b- Camada Web
c- Camada de Negócio
d- Camada da Interface Gráfica
15.b) Os componentes EJB EntityBeans fazem parte da:
a- Camada Cliente
b- Camada de Persistência
c- Camada Web
d- Camada de Negócio
15.c) Os componentes EJB SessionBeans fazem parte da:
a- Camada de Persistência
b- Camada Web
c- Camada de Negócio
d- Camada Cliente
15.d) Qual alternativa em que todos os itens fazem parte da tecnologia JavaEE:
a- EJB; JSP; Servlets; JMS
b- JSP; Servlets; ActiveX; JCA; EJB
c- JSF; JDBC; Swing; JTA
d- JCA; JSP; JDBC; JNI
19.a,b,c,d) Quando NÃO usar um SessionBean?
a- Quando o estado do Bean não é persistente. Existindo por um certo
período de tempo.
b- Quando o estado do Bean representa a interação entre o bean e um
cliente específico.
c- Quando o bean gerencia o fluxo de trabalho dos diversos enterprise
beans.
d- Quando o bean representa uma entidade de negócios e não um
procedimento.
20.a,b,c,d) Quando usar um EntityBean?
a- Quando o estado do Bean não é persistente. Existindo por um certo
período de tempo.
b- Quando o bean representa uma entidade de negócios e não um
procedimento.
c- Quando o estado do Bean representa a interação entre o bean e um
cliente específico.
d- Quando o bean gerencia o fluxo de trabalho dos diversos enterprise
beans.
import javax.persistence.*;
public class CriaAluno {
public static void main(String[] args) {
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("teste");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Aluno a = new Aluno();
a.setNome("Maria");
a.setRa(123456789);
a.setMs1(5.5);
a.setMs2(4.5);
em.persist(a);
em.getTransaction().commit();
em.close();
emf.close();
System.out.println("id do aluno persistido: " + a.getId());
}
}
Para que o código acima fique correto, as lacunas devem ser
preenchidas com os respectivos trechos:
a) createEntityManagerFactory, EntityManager, begin(), persist
b) createFactory, EntityManager, start, insert
c) createEntityManagerFactory, Entity, begin(), write
d) createManagerFactory, EntityManager, start(), persist
CURSO: SISTEMAS DE INFORMAÇÃO/TECNOLOGIA EM PROC DE DADOS
DISCIPLINA: TÓPICOS AVANÇADOS DE PROGRAMAÇÃO
QUESTÕES DISSERTATIVAS
1. Implementar um método em Java, chamado “imprimeMapa()” que recebe um
objeto “Map” (coleção), verifica se ele possui elementos e, em caso afirmativo,
imprime a chave e o valor no seguinte formato: “<chave> - <valor>”.
Solução:
public void imprimeMapa(Map mapa)
{
if(!mapa.isEmpty())
for(Object key : mapa.keySet()) System.out.printf("%-10s%10s\n", key,
mapa.get(key));
}
2. Esquematize e explique o ciclo de vida de um objeto persistente JPA (“Java
Persistence API”).
Solução:
Numa unidade de trabalho, o objeto pode ser criado pelo operador new e
assim ele é transiente (não persistente). Nesse caso, ele está no estado
“New”. O objeto pode também ser criado persistente (entidades) e colocado
direto no estado “Managed”. É possível passar do estado “New” para o estado
“Managed”, ou seja, transformar um objeto transiente numa entidade. Uma
vez que o objeto está no estado gerenciado, ele pode ser colocado do estado
“Removed”, ou seja, ser programado para ser removido no final da unidade de
trabalho. Nesse caso, ele não poderá mais retornar ao estado de persistência.
Ainda no estado gerenciado, o objeto persistente poderá ser colocado no
estado “Detached”, ou seja, desligado (mantém a identidade com o banco de
dados, mas não é mais persistente). Nesse caso ele poderá retornar ao
estado de persistência. O ciclo, com esses processos descritos, ocorre
enquanto a unidade de trabalho estiver aberta.
3. O gerenciador de persistência JPA, ou gerenciador de entidades (“Entity
Manager”) é responsável por quase todas as tarefas de persistência de objetos,
através de seus serviços fornecidos pela API de gerenciamento de persistência.
Liste quais são estas tarefas.
Solução:
(i)
(ii)
(iii)
(iv)
Operações de CRUD (criar, consultar, atualizar, excluir) básicas;
Execução de consulta;
Controle de transições de estado (processos);
Gerenciamento do contexto de persistência.
4. A classe abaixo está totalmente preparada para se tornar um objeto persistente
JPA? Se não, o que está faltando? Nesse caso, reescreva-a incluindo,
basicamente, o que falta.
//classe externa - representa a tabela "Tabela"
public class Tabela implements java.io.Serializable
{
//atributos da classe Tabela
private long id; //representa o campo "campo_ID"
private String campo; //representa o campo "campo"
//construtor padrão da classe Tabela
public Tabela(){}
//propriedade de consulta do atributo id
public long getId(){return id;}
//propriedade de alteração do atributo id
public void setId(long id){this.id = id;}
//propriedade de consulta do atributo campo
public String getCampo(){return campo;}
//propriedade de alteração do atributo campo
public void setCampo(String campo){this.campo = campo;}
}
Solução:
//classe externa - representa a tabela "Tabela"
@Entity
@Table(name=“Tabela”)
public class Tabela implements java.io.Serializable
{
//atributos da classe Tabela
@Id
@Column(name = "campo_ID")
private long id; //representa o campo "campo_ID"
@Column(name = "campo ")
private String campo; //representa o campo "campo"
//construtor padrão da classe Tabela
public Tabela(){}
//propriedade de consulta do atributo id
public long getId(){return id;}
//propriedade de alteração do atributo id
public void setId(long id){this.id = id;}
//propriedade de consulta do atributo campo
public String getCampo(){return campo;}
//propriedade de alteração do atributo campo
public void setCampo(String campo){this.campo = campo;}
}
5. O ciclo de vida abaixo está relacionado à qual “enterprise bean”? Explique-o.
Solução:
SessionBean sem posição (Stateless). Quando uma instância muda do
estado inexistente para o estado de método pronto para execução, três
operações são realizadas. Primeiro o bean é instanciado pela invocação do
método
class.newInstance().
Depois,
o
método
SessionBean.setSessionContext(SessionContext context) é invocado na
instância do bean e finalmente o método ejbCreate() é acionado pelo
contêiner e este método é acionado somente uma vez no ciclo de vida da
sessão bean sem estado.
QUESTÕES DE MÚLTIPLA ESCOLHA
6. A interface List não pode ser instanciada. Para utilizá-la é necessário
implementá-la através de classes. Qual das opções abaixo possui somente
classes que implementam a interface List?
a) ArrayObject, LinkedList
b) ArrayList, LinkedList
c) MapList, ArrayList
d) ArrayList, ListObject
7. Qual a linha de código correta para criar um objeto Set?
a)
b)
c)
d)
Set <Integer, String> map = new HashMap <Integer, String>();
Set <Integer, String> map = new Set <Integer, String>();
Map <String> map = new HashSet <String>();
Set <String> objSet = new HashSet <String>(objCollection);
8. Em JPA, como é chamada a área de memória onde os objetos persistentes se
encontram?
a)
b)
c)
d)
Gerenciador de persistência
Gerenciador de entidades
Contexto de objetos transientes
Contexto de persistência
9. Qual anotação JPA informa ao container EJB para qual tabela do banco de
dados a classe será mapeada?
a)
b)
c)
d)
@Table
@Column
@Entity
@TableClass
10. No código do arquivo de configuração “persistence.xml” abaixo, qual o nome da
unidade de trabalho?
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="acessoA">
<provider>
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
</provider>
<class>entidades.Tabela</class>
<properties>
<property name="toplink.logging.level" value="INFO"/>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost/banco"/>
<property name="toplink.jdbc.user" value="root"/>
<property name="toplink.jdbc.password" value="root"/>
</properties>
</persistence-unit>
</persistence>
a) Tabela
b) oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
c) INFO
d) acessoA
11. As linhas de código para criação da unidade de trabalho (“unidtrab”) em JPA e
do gerenciador de entidades são, respectivamente:
a) EntityManager emf = Persistence.createEntityManager(“unidtrab”);
EntityManagerFactory em = emf.createEntityManagerFactory();
b) Entity emf = createEntityManagerFactory(“unidtrab”);
EntityManager em = emf.createEntityManagerFactory();
c) EntityManagerFactory
emf
Persistence.createEntityManagerFactory(“unidtrab”);
EntityManager em = emf.createEntityManager();
=
d) EntityManagerFactory emf = createEntityManagerFactory(“unidtrab”);
EntityManager em = emf.createEntityManager();
12. Para efetuar a inclusão, em JPA, de um registro numa tabela do banco de
dados, é necessário utilizar qual método do objeto EntityManager?
a)
b)
c)
d)
include(objEntity)
persist(objEntity)
inside(objEntity)
remove()
13. Faz parte da estrutura básica de aplicativos EJB (Enterprise Java Beans):
a)
b)
c)
d)
Persistência, banco de dados e GUI
Somente consulta a banco de dados
Session Beans, Entity Beans e Message-driven
Banco de dados, JPA e JQL
14. Session Beans (Componentes de Sessão) podem ser de dois tipos. Qual opção
identifica esses tipos?
a)
b)
c)
d)
Stateless e JPA
Statefull e EJB
Message-Driven e JPA
Stateless e Statefull
15. Message-driven é um tipo de _________. Qual das opções abaixo complementa
a frase anterior?
a)
b)
c)
d)
JPA (Java Persistence API)
Session Beans
EJB (Enterprise Java Beans)
Stateless
1 - Dado o programa abaixo execute:
a) Chamar comando para mostrar a quantidade de registros no conjunto.
b) Crie um looping através do Iterator para mostrar todos os elementos.
2 - Baseado na classe de persistência abaixo PersisteAluno, escreva o código da
classe CriaAluno para gravar um ALUNO e um RA no Banco de Dados.
3 - Qual a diferença entre StateFul SessionBean e StateLess SessionBean?
4 - Quando devemos utilizar EJB nas aplicações ?
5 - Dado o programa abaixo execute:
a) Comando para mostrar a quantidade de registros na lista.
b) Remover o primeiro registro.
c) Remover “Maria”
d) Mostrar o último elemento da lista.
e) Embaralhar a lista.
6 – Qual annotation deve ser utilizada numa interface SessionBeans, para definir
que seus métodos serão acessíveis localmente?
a) @Local
b) @Stateless
c) @Remote
d) @Stateful
7 - Qual o tipo de retorno de um comando executeUpdate()
a) Statement
b) Table
c) List
d) ResultSet
8 - Qual o método deve-se utilizar para uma query que retorna mais de 1 registro ?
a) getResultSet ()
b) getResultList()
c) getResult ()
d) getSingleResult
9 - Onde devem ser declaradas as NamedQueries ?
a) No arquivo persistence.xml
b) No programa em execução.
c) Na classe de persistência.
d) Em um banco de dados.
10 - O que faz o comando declarado no arquivo persistence.xml:
<property name="toplink.ddl-generation" value="create-tables" />
a) Cria uma nova tabela sobreescrevendo a antiga
b) Cria uma nova tabela quando não existir
c) Não executa nada, é apenas um informativo
d) Gera um script da tabela
11 - O método executeUpdate( ) retorna um número inteiro. O que representa esse
número?
a) Quantidade de registros na tabela
b) Quantidade de registros afetados.
c) Código interno da execução
d) Quantidade de parâmetros da query.
12 - Qual o método utilizado para localizar uma Entidade:
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);
13 - Qual annotation utilizamos para definir um atributo que não será gravado no
banco de dados ?
a) @Id
b) @Managed
c) @Transient
d) @Removed
14 - 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
15 - Qual comando é utilizado para gravar definitivamente as alterações no banco de
dados?
a) em.getTransacion( ).rollback( )
b) em.getTransacion( ).save( )
c) em.getTransacion( ).close( )
d) em.getTransacion( ).commit( )
CURSO: TECNOLOGIA EM PROC DE DADOS
DISCIPLINA: TÓPICOS AVANÇADOS DE PROGRAMAÇÃO
QUESTÕES DISSERTATIVAS
16. Na classe abaixo (exeArvore), que implementa a interface IContratoColecoes, o
método preencher() popula a coleção Arvore com 4 valores , o método Imprimir()
exibe esses valores. Qual será a saída na tela de console ao executarmos o
método Imprimir() ?
«interface»IContratoColecoes
public class exeArvore
implements
IContratoColecoes {
private TreeSet<String> Arvore;
@Override
public void preencher() {
Arvore.add("z");
Arvore.add("l");
Arvore.add("b");
Arvore.add("a")
}
+imprimir()
+preencher()
+ordenar()
@Override
public void imprimir() {
Iterator it = Arvore.iterator();
while (it.hasNext()) {
String key = (String) it.next();
System.out.println(key);
}
@Override
. public void ordenar() { };
17. Se instanciarmos a classe exeListaSimples(abaixo) e chamarmos os métodos na
seguinte ordem, preencher,ordenar e imprimir, a saída será a seguinte “Nr 0,Nr
1,Nr 10,Nr 2,Nr 3,Nr 4,Nr 5,Nr 6,Nr 7,Nr 8,Nr 9”. Porque o Nr 10 aparece após o
Nr 1 e não após o Nr 9, que aparentemente é a forma correta de ordenação,
mesmo após termos efetuado a ordenação da coleção ?
public class exeListaSimples implements
IContratoColecoes{
private ArrayList<String> listaSimples;
public exeListaSimples()
{listaSimples=new ArrayList<String>();}
public void preencher()
{
for (int i= 10; i >=0; i--)
listaSimples.add("Nr " + i + ",");}
public void imprimir(){
for (int i= 0; i <=10; i++)
System.out.print(listaSimples.get(i));}
public void ordenar() {
Collections.sort(listaSimples);}
}
18. Inclua as notações necessárias na classe abaixo para que seja persistida utilizando JPA.
Observação, a tabela ainda não existe na database e a coluna descrição deve aceitar nulos e
ter o tamanho máximo de 50 caractéres.
public class Produto {
private Long id;
private String nome;
private String descricao;
private Double preco;
}
19. Sistemas em camadas surgiram para: Melhor aproveitar os PCs da empresa ,oferecer
sistemas com interfaces gráficas amigáveis, integrar o desktop e os dados corporativos, a
camada servidor é responsável por tratar dos dados (utilizando um Sistema Gerenciador de
Banco de Dados - SGBD), qual o papel da camada cliente nessa arquitetura ?
20. Em Java EE, qual o papel dos containers?
QUESTÕES DE MÚLTIPLA ESCOLHA
21. Qual o tipo de coleção que é recomendada 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 (evitando
deslocamentos).
e) HashMap
f) ArrayList
g) HashSet
h) TreeSet
22. Hashset é uma implementação de Set que utiliza uma tabela hash internamente, qual o
benefício de utilizar esse tipo coleção?
e)
f)
g)
h)
O acesso é rápido, tanto para leitura quanto para modificação
Entradas em formato de tupla (chave,valor);
Bytecode reduzido;
Depuração mais rápida;
23. A utilização de código SQL dentro de uma aplicação agrava o problema da independência de
plataforma de banco de dados e complica, em muito, o trabalho de mapeamento entre classes
e banco de dados relacional. Que framework Java melhor endereça esse tipo de problema ?
e)
f)
g)
h)
JDBC
ODBC
Struts
Java Persistence API
24. No Java Persistence API a interface EntityManager define diversos métodos de manipulação
das classes, qual o papel do método Merge?
e)
f)
g)
h)
Remove um objeto.
Realiza update das informações do objeto para a entidade.
Cria um novo objeto.
Une informações de uma entidade com a outra.
25. O que ocorrerá com meu banco de dados se o arquivo persistence.xml possuir a seguinte
linha de configuração?
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
e)
f)
g)
h)
O nível de log será baixo.
A consulta retornará mais lentamente.
A base de dados será eliminada(drop) e o programa não será executado.
A cada execução do programa das entidades do banco de dados são eliminadas e
reconstruídas.
26. Oracle toplink (Oracle.toplink) é um provedor JPA, também são exemplo de provedores JPA :
e) Microsoft ODBC;
f) JDBC;
g) Hibernate, Kodo e OpenJPA
h) Webservice;
27. O que é um message-driven bean ?
e) Um tipo de Instant Messenger
f) Um Enterprise Bean que permite as aplicações Java EE processarem mensagens de maneira
assíncrona.
g) Representa um objeto de negócio
h) remove()
28. Onde a interface EntityManager obtém as informações necessárias para acessar o banco de
dados numa aplicação que utiliza JPA ?
e)
f)
g)
h)
Gerenciador de drivers ODBC do Windows.
Do Message-driven bean.
No arquivo de persistência (persistence.xml).
Diretamente do banco de dados
29. Qual o principal benefício da utilização da camada EIS (Enterprise Information System)
e)
f)
g)
h)
Organiza e facilita o acesso aos sistemas de negócio (Legado) das empresas.
Facilidade de visualização.
Muitos componentes de interface disponíveis.
Criar entidade no banco de dados sem utilizar comandos DDL.
30. O que é um Session Bean Stateful ?
e) Pattern de acesso a banco de dados, também conhecido como singleton.
f) Tipo de coleção
g) EJB (Enterprise Java Beans), que em uma aplicação distribuída age como extensão do cliente
do lado do servidor.
h) Tipo de provedor JPA
Download