Baixe o app para aproveitar ainda mais
Prévia do material em texto
Uma classe pode possuir mais de um método construtor, diferenciados pela listas de parâmetros. Assinale a alternativa que indica o mecanismo usado em tal implementação. Sobrescrita Abstração Polimorfismo Encapsulamento Sobrecarga 2a Questão Analise as seguintes sentenças: I. Em Java, a plataforma Java 2 Enterprise Edition (J2EE) define um padrão para desenvolvimento de aplicações empresariais em múltiplas camadas. II. O J2SE aproveita as vantagens gerais da linguagem Java, mas roda somente no ambiente windows. III. Em Java, o modificador de acesso protected permite acesso para qualquer subclasse ou classe pertencente ao mesmo pacote da classe identificada. Das sentenças acima, apenas: I e II são verdadeiras I é verdadeira III é verdadeira I e III são verdadeiras II é verdadeira 3a Questão "Uma classe que não pode ser estendida, podendo apenas ser instanciada". Assinale a alternativa que indica esse tipo de classe. 1a Questão Classe abstrata Classe concreta Classe filha Interface Classe final 4a Questão O comando break tem a função de: Segmentar a execução de um loop em duas ou mais partes aninhadas Impossibilitar o aninhamento de loops não lógicos Estabelecer um intervalo de depuração durante a execução de um loop Interromper a execução de um loop Condicionar a execução de um comando de atribuição a um operador lógico Explicação: O comando break é utilizado em duas situações: interromper a execução de um loop, e delimitar uma seção de switch/case. 5a Questão "Classes que não podem possuir métodos concretos, assim como também não podem possuir métodos construtores". Assinale a alternativa que indica esse tipo de classe Classes filhas Interfaces Classes abstratas Classes concretas Classe derivadas 6a Questão Sobre os diferentes pacotes de java disponíveis, analise as afirmativas e selecione a alternativa correta: I) O pacote Java SE é suficiente para desenvolver todo e qualquer tipo de aplicação Java. II) É desnecessário identificar a versão da JVM do servidor de aplicações, visto que uma aplicação Java de qualquer versão sempre poderá ser executada em qualquer versão de JVM. III) O JDK é um pacote que inclui diversos elementos adicionais, a maioria deles necessários apenas para o desenvolvedor Java. Apenas uma afirmativa está correta. Apenas II e III estão corretas. Apenas I e III estão corretas. Apenas I e II estão corretas. Todas as afirmativas estão corretas. 7a Questão Podemos dizer que é um modelo para criação de objetos. Classe Objeto Conexão Polimorfismo Herança Explicação: A classe funciona para os objetos como um "tipo" para uma "variável", pois define o molde ou domínio que será adotado pelos objetos criados. 8a Questão Assinale a alternativa que representa a técnica que permite que vários métodos tenham o mesmo identificador, variando somente sua assinatura. sobrescrita sobrecarga polimorfismo encapsulamento derivação de classes 1a Questão A linguagem Java tem sintaxe bastante similar à da linguagem C/C++. No entanto, o ambiente Java possui diversas características que tornam o seu uso mais simples na construção de alguns tipos de aplicações. Sobre estas características diferenciadas, é válido afirmar que: Um programa Java pode ser executado em qualquer equipamento, independente de sua configuração e sistema operacional. A Máquina Virtual Java nunca é necessária; ela existe apenas para aumentar o desempenho do processamento. Como a linguagem Java é voltada para o aprendizado, ela foi construída com pequenos projetos em mente, não sendo adequada para construir sistemas maiores. Java é uma linguagem naturalmente menos organizada, não possuindo recursos clássicos de C/C++ como, por exemplo, os pacotes e classes. Ao contrário de um programa em C/C++, que normalmente dá origem a um software específico para um equipamento e sistema operacional, um programa em Java dá origem a um software que não é específico de qualquer computador ou sistema operacional. A linguagem C/C++ possui muito mais recursos e uma biblioteca padronizada muito maior que o Java, em especial quando se fala em desenvolvimento de aplicativos para servidor. 2a Questão Qual técnica permite que vários métodos tenham o mesmo identificador, variando somente sua assinatura? Sobrescrita Herança Sobrecarga Polimorfismo Encapsulamento 3a Questão Quando se cria programas de computador em Java, há possibilidade de ocorrer erros imprevistos durante sua execução, esses erros são conhecidos como exceções e podem ser provenientes de erros de lógica ou acesso a dispositivos ou arquivos externos. As exceções ocorrem quando algo imprevisto acontece, elas podem ser provenientes de erros de lógica ou acesso a recursos que talvez não estejam disponíveis. Sobre o tratamento de exceções em Java, assinale a afirmativa INCORRETA. A cláusula try sempre é executada. As exceções em Java são fixas e não é possível definir novas exceções. A cláusula catch nem sempre é executada. A cláusula finally é sempre executada mesmo quando existente em um bloco try/catch. Uma exceção é sempre um objeto do tipo Throwable 4a Questão "Método que não pode ser sobrescrito". Assinale a alternativa que indica esse tipo de método. Método de trabalho Método abstrato Método concreto Método polimórfico Método final 5a Questão Em relação a conceitos de Java, marque a alternativa correta: Sempre que houver confusão entre nomes de variáveis de um método com os nomes de atributos de uma classe, devemos usar a palavra this para nos referir ao atributo. Para que um atributo não seja modificado por outras classes, deve-se liberar o método getter daquela variável. O método getter não permite esconder o formato (tipo de dado) com que um atributo está armazenado. Os métodos que servem para modificar atributos são chamados de getters. Seja a sentença: public class Livro extends Produto. Podemos dizer que todo objeto do tipo Produto será, ao mesmo tempo, um objeto do tipo Livro. 6a Questão "Uma classe que não pode ser instanciada, podendo apenas ser estendida". Assinale a alternativa que indica esse tipo de classe. Interface Classe concreta Classe final Classe pai Classe abstrata. 7a Questão Desenvolvida pela Sun Microsystems na década de 90, a linguagem Java tem sido amplamente aceita pelo mercado devido a diversas características apresentadas. Algumas destas características são listadas a seguir. Qual das alternativas indica uma afirmação FALSA acerca das vantagens do Java? É uma arquitetura aberta, extensível, com várias implementações. Tem diversos ambientes de desenvolvimento gratuitos. Pode ser baixada gratuitamente. É uma linguagem multiplataforma. Conta com ampla documentação e possibilidade de certificação através da Microsoft. 8a Questão Quando falamos das ações que um objeto pode realizar estamos nos referindo a: Atributos Nível deacesso Métodos Herança Agrupamentos Aula 2 1a Questão Em relação a um Servidor de Aplicações JAVA (Contentor JAVA), os seguintes itens descrevem o seu funcionamento básico, EXCETO: Recebe a response do servlet. Apresenta o resultado da página na máquina do cliente. Devolve a response para o cliente que enviou a request. Repassa a request para o servlet correto. Aguarda pelas requests. Explicação: O servidor de aplicações, como o GlassFish, atua apenas do lado servidor. 2a Questão Quando falamos de programação WEB, temos uma definição de uma classe na linguagem de programação Java que, dinamicamente, processa requisições e respostas, proporcionando, dessa maneira, novos recursos aos servidores. A definição, mais usada, considera-os extensões de servidores. Este módulo que estende a funcionalidade de um servidor web, através de módulos de aplicação implementados, em Java, estamos nos referindo a(o) Java Web Servlet PHP Java ASP 3a Questão Analise o código abaixo e escolha a alternativa INCORRETA: protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { String pesoT= request.getParameter("peso"); pesoT = pesoT.replaceAll(",","."); String alturaT = request.getParameter("altura"); alturaT = alturaT.replaceAll(",", "."); double peso = Double.valueOf(pesoT); double altura = Double.valueOf(alturaT); double imc = peso /(altura*altura); out.println("IMC: "+ imc + ""); } catch (Exception e) { out.println("Digite um numero"); } O cálculo é realizado através da chamada ao método IMC No código apresentado dois parâmetros, peso e altura, são recebidos através de um método do HTTP, como o POST, por exemplo. A possível exceção é tratada no próprio código O retorno do código apresentado é uma expressão HTML Classes Java são utilizadas para converter os parâmetros recebidos, que chegam como String, para os tipos apropriados Explicação: Na verdade, o "imc" trata da variável que recebe o cálculo, feito apenas com operações sequenciais, e não um método que efetuaria o cálculo. 4a Questão Em relação a um Servidor de Aplicações JAVA (Contentor JAVA), os seguintes itens descrevem o seu funcionamento básico, EXCETO: Repassa a request para o servlet correto. Mostra o resultado no browser do cliente. Devolve a response para o cliente que enviou a request. Aguarda pelas requests. Recebe a response do servlet. 5a Questão Qual é a linha completa este código? 1) public class Casdastro extends HttpServlet { 2) protected void service(HttpServletRequest request,HttpServletResponse response) { 3) ContatoDAO dao = new ContatoDAO(); 4) Contato contato = new Contato(); 5) contato.setNome(request.getParameter("nome")); 6) contato.setEndereco(request.getParameter("endereco")); 7) contato.setEmail(request.getParameter("email")); 8) dao.inserir(contato); 9) ??????? 10) rd.forward(request, response); 11) } 12) } RequestDispatcher rd = request.getRequestDispatcher("/contato- adicionado.jsp"); RequestDispatcher rd = response.get ResponseDispatcher("/contato- adicionado.jsp"); Dispatcher rd = request.getDispatcher("/contato-adicionado.jsp"); ResponseDispatcher rd = response.getRequestDispatcher("/contato- adicionado.jsp"); Dispatcher rd = response.getDispatcher("/contato-adicionado.jsp"); Explicação: Será necessário um RequestDispatcher para efetuar a ação de forward da linha seguinte. 6a Questão O descritor de implantação de um aplicativo web descreve as classes, os recursos e a configuração do aplicativo e como eles serão usados pelo servidor web para atender às solicitações da web. Quando o servidor web recebe uma solicitação do aplicativo, ele usa o descritor de implantação para mapear o URL da solicitação para o código que deve processá-la. O descritor de implantação em aplicações Java Servlet e Java Server Pages que utilizam o GlassFish é o server.xml manager.xml contexto.xml apache-config.xml web.xml Explicação: No arquvo web.xml podem ser definidos elementos como timeout de sessão e mapeamento de Servlets. 7a Questão Para criar um Servlet é necessário: Implementar o método HttpServletr. Instanciar a classe Servlet que implemente Serializable. Criar uma classe que estenda a classe HttpServlet. Implementar o método Servlet.service(Servlet.HTTP_REQUEST). Criar uma classe que implemente a interface HttpServlet. 8a Questão São considerados contêineres JSP/Servlet: Apache Tomcat e Glassfish HttpServlet e Javascript Oracle e PostgreSql métodos e atributos classe abstrata e interface a Questão Ao estudar as especificações e frameworks Java EE, um Analista de Sistemas concluiu que: a utilização de Java Persistent API obriga o uso de um container EJB com Session Beans STRUTS é um framework de persistência que permite o gerenciamento de dados relacionais, utilizando-se de mapeamento objeto-relacional Enterprise JavaBeans é um modelo de componentes padronizado, executado no lado do cliente e que facilita a construção de aplicações distribuídas robustas o container WEB do servidor de aplicações é o responsável por gerenciar o ciclo de vida de servlets e de EJBs utilizados numa aplicação Java no container WEB, uma página JSP transforma-se em um servlet, que é compilado, carregado e inicializado 2a Questão O protocolo HTTP funciona através da requisição de um recurso e uma resposta que pode devolver um arquivo que é devolvido pelo servidor Web, esta diferença é determinada pelo método informado na requisição. Informe a afirmativa incorreta dentre as listadas abaixo: O método post não possui limite de tamanho dos dados enviados, o seu limite é o tempo de resposta. Um Servlet pode receber a mesma requisição através dos dois métodos (post e get) ao mesmo tempo. O método get não permite que se faça envio de arquivos junto com os dados. O envio por post e get necessitam tratamento diferenciado quando se utiliza o Character Encoding ISSO-8859-1. O método get possui limite de caracteres no tamanho da URL chamada. Explicação: O protocolo HTTP permite o uso de GET ou POST a cada chamada, porém não na mesma requisição. 3a Questão Um Servlet é, basicamente, um programa Java que, ao receber uma requisição (request), realiza um processamento e gera uma resposta (response). Considerando o funcionamento dos Servlets, pode-se afirmar que: Jamais um Servlet aciona outro Servlet. Uma vez que um Servlet recebeu uma requisição, apenas ele deverá processá-la. Um Servlet pode apenas processar requisições do tipo "post", isto é, aquelas originadas de um formulário web. Apesar dos Servlets serem baseados na tecnologia Java, não há a necessidade de uma Máquina Virtual Java para executá-los. Os Servlets são executados sempre no computador do usuário, nunca no servidor da empresa. Para que um Servletpossa ser executado é necessário que um contentor Java, como o TomCat ou GlassFish, esteja em funcionamento. 4a Questão São apenas tipos de componentes executados em servidores Web: Beans, Swing e JSP. Beans, Servlets e J2EE. Beans, Swing e JVM. Beans, Servlets e JSP. JVM, Servlets e JSP. 5a Questão O que é Servlet ? um software criado pela Sun para desenvolvimento de aplicativos móveis em Java uma classe Java que é carregada e executada por um servidor web um framework que auxilia no desenvolvimento de aplicações web uma extensão da classe JFrame uma arquitetura genérica para web que implementa várias linguagens de programação, tais como PHP e o Java 6a Questão Para recuperar os dados enviados através de uma requisição utiliza-se: parameter.getRequest("nomedoparametro") request.Parameterget("nomedoparametro") request.getParameter("nomedoparametro") parameter.Requestget("nomedoparametro") getParameter.request("nomedoparametro") 7a Questão Qual das afirmativas abaixo é falsa com relação aos Web Servers Java? Todo JSP é transformado pelo contexto em um Servlet. Permitem tratamento diferenciado para chamadas GET e POST. Um web service é uma aplicação distribuída, cujos componentes podem ser aplicados e executados em dispositivos distintos. O principal contexto para Web utilizado é o Tomcat. Não são capazes de gerenciar estado. 8a Questão Considere: I. Cobre parte da especificação JEE porém não as tecnologias servlet e JSP e nem as tecnologias Realms e JDBC DataSources. II. Tem a capacidade de atuar como servidor web, ou pode funcionar integrado a um servidor web dedicado como o Apache ou até mesmo o IIS. III. É distribuído pela Sun como software proprietário e é referência para as tecnologias Java Servlet e JavaServer Pages. Quanto ao Tomcat, é correto o que consta em I e II, somente. II, somente. I, somente. III, somente. I, II e III. Aula 3 1a Questão Os sistemas para o ambiente Internet utilizam a sessão como forma de controle de acesso às áreas restritas. A implementação do tratamento pode ser feito de várias maneiras, além do uso de várias formas de controlar os direitos de uso. O uso do padrão Front Controller permite que a verificação possa ser realizada em único local, facilitando a manutenção. Marque a afirmação que não pode ser utilizada como forma de verificar se uma operação precisa de que o usuário esteja logado usando o padrão Command nas seguintes abordagens: Podemos organizar os comandos por pacotes e determinar quais os pacotes que deverão exigir o uso de login do usuário. Podemos codificar em cada comando para que ele verifique se necessita de login, deixando para ele a responsabilidade de encaminhar para o formulário de login. Podemos criar uma classe de controle de login que será estendida pelos comandos que necessitarem de controle de acesso. Podemos criar uma interface e fazer com que todos os comando que necessitem de login prévio a implemente. O teste será realizado com a utilização do operador insataceOf. Pode ser usado um prefixo para que um conjunto de comandos obrigue que determinada varável de sessão exista e possua valor. Explicação: O padrão Command trabalha com o sistema de herança, devendo ser especializado para as necessidades de controle de acesso específicas. 2a Questão Na diretiva page, do JSP, podemos utilizar o atributo import que permite importar arquivos htm. importar figuras. configurar pacotes. configurar arquivos html. importar pacotes. 3a Questão Assinale a alternativa que possui o conceito incorreto sobre sessão web: Somente é possível atribuir valores originados de POST ou GET Utilizado para persistir com os dados entre páginas web Serve para armazenar dados, tais como login, carrinho de compras em lojas virtuais, etc. É gerenciado pelo servidor, e não pelo cliente É possível atribuir valores, objetos e arrays em sessão 4a Questão Com relação às tecnologias JSP, Servlet e JavaScript, responda V ou F : ( ) O método POST envia os dados como um fluxo de dados juntamente com o pacote de dados http de forma não visível ao usuário ( ) Página JSP são interpretadas e executadas pelo Container Java Web sem nenhuma transformação adicional. Ocorre apenas a carga página em código fonte. ( ) Uma Servlet para ser acionada precisa da definição da URL-pattern de acesso definida no descritor de implantação da aplicação Web ( ) É necessário o código fonte e o bytecode (.class) de uma Servlet no Container Java Web, para que a Servlet seja executada. ( )Uma Servlet somente suporta requisições na forma POST F - F - V -V - F V - F - F - F - F V - F - V - V - V V - V - V - F - V V - F - V - F - F 5a Questão Para incluir blocos de código Java em uma página JSP utiliza-se a categoria de tags denominada expressões. scriptlets. diretivas. comentários. declarações. 6a Questão Páginas JavaServer Pages são páginas web combinadas com servlets no desenvolvimento exclusivo de páginas estáticas. interpretadas e não compiladas. transformadas em bytecode e executadas no cliente escritas em Java, sem código HTML. que permitem combinar códigos Java, HTML estático, CSS, XML e JavaScript. Explicação: Em termos gerais, o JSP permite o uso de design via XHTML além de códigos Java que são executados no servidor. 7a Questão A tecnologia JSP é extremamente útil e pode facilitar muito o desenvolvimento de uma aplicação web. Assinale a alternativa INCORRETA sobre esta tecnologia: Um JSP não pode trocar informações ou requisições com um Servlet. Um JSP tem a aparência de um código HTML com alguns trechos de código Java. É possível usar um componente ou uma classe Java por meio de um JSP. O principal foco de uso do JSP é a criação da interface com o usuário. Todo arquivo JSP é, em sua primeira execução, convertido para um servlet. 8a Questão Qual tag do pacote Core da JSTL permite que seja feita uma iteração entre os elementos de uma coleção especificada? while repeat loop forEach for Explicação: O comando forEach permite o passeio nos elementos de uma coleção de objetos. 1a Questão Analise as seguintes afirmações a respeito de JSP, em seguida assinale a opção correta. I. Em uma aplicação Web, há apenas uma diretiva page em cada JSP II. Comentários JSP aparecem na resposta ao cliente III. Os objetos com escopo session duram por toda a sessão de navegação do cliente As afirmações I, II e III são verdadeiras. Apenas a afirmação II é verdadeira. As afirmações I e II são verdadeiras. Apenas a afirmação I é verdadeira. Apenas a afirmação III é verdadeira. 2a Questão A classe HttpSession possui um método que apaga os dados da sessão. Qual é o seu nome? removeAttribute() invalidate() removeValue() getSession() isNew() 3a Questão Em termos de JSP, qual estrutura corresponde ao funcionamento que, em um Servlet, estaria embutidonos métodos doGet e doPost? Anotações Diretivas Comentários Scriptlets Declarações 4a Questão Em JSP, a diretiva taglib define uma biblioteca de tags para serem usadas na página. um conjunto de classes importadas para serem usadas na página. uma biblioteca para ser inserida na página. um módulo logicamente coesivo. uma nova tag para ser usada na página. 5a Questão As diretivas são marcações utilizadas para indicar ao container como tratar a página em questão. Sobre estas considere os items e veja as opções a seguir indicando as associações: A - Através dessa diretiva, podemos inserir texto existente em outro arquivo em uma página jsp; B - São informações de configuração especificas do conteúdo Java existente na página, isto é, são as configurações indispensáveis para geração do Servlet correspondente. C - Essas diretivas indicam quais bibliotecas de tags customizadas iremos utilizar em nossa página A - TAGLIB; B - INCLUDE; C - PAGE. A - INCLUDE; B - PAGE; C - TAGLIB A - INCLUDE; B - FRAME; C - TAGLIB A - TAGLIB; B - PAGE; C - INCLUDE. A - INSERT; B - FRAME; C - TAGLIB 6a Questão Quando se desenvolve uma aplicação web, é possível transferir informações entre diferentes servlets de duas maneiras: pela requisição e pela sessão. Analise as afirmativas a seguir e selecione a alternativa correta: I) Os dados armazenados em uma requisição têm um tempo de vida igual ao da requisição. II) Os dados armazenados na sessão ficam armazenados para sempre, como em um banco de dados. III) Tanto a requisição quanto a sessão podem ser usados para armazenar o estado de uma aplicação, pois os dados permanecem lá até que sejam removidos. Apenas uma afirmativa está correta. Todas as afirmativas estão corretas. Apenas I e II estão corretas. Apenas II e III estão corretas. Apenas I e III estão corretas. 7a Questão É característica de um arquivo JSP a execução exclusiva em sistemas Windows. compilação em um servlet. presença maciça de código Assembly. impossibilidade de inclusão de comentários. execução exclusiva em sistemas Linux. 8a Questão Com relação à linguagem JSP, diretivas podem ser utilizadas para determinar configurações específicas da página. Marque a opção que expressa o correto relacionamento entre a diretiva e sua funcionalidade. I - Diretiva include II - Diretiva page III - Diretiva taglib a. Através dessa diretiva podemos inserir texto existente em outro arquivo em uma página jsp. b. Indica quais bibliotecas de tags customizadas iremos utilizar em nossa página. c. São informações de configuração especificas do conteúdo Java existente na página. I - c , II - b , III - a I - c , II - a , III - b I - a , II - b , III - c I - b , II - a , III - c I - a , II - c , III - b Aula 4 1a Questão Qual a classe de JDBC é responsável pela interface entre os clientes e os drivers JDBC? DriverManager EntityManagerFactory PreparedStatement ResultSet EntityManager 2a Questão Baseado na linha de comando abaixo, marque qual deve ser o comando seguinte: st = Conexao.getConection().createStatement(); ResultSet rs = st.executeQuery("select * from ALUNOS"); List = st.executeQuery("select * from ALUNOS"); List = st().executeUpdate("select * from ALUNOS"); List = st.executeUpdate("select * from ALUNOS"); ResultSet rs = st.executeUpdate("select * from ALUNOS"); 3a Questão A persistência em Banco de Dados é uma constante em programas de automação comercial. Porém certas interfaces e classes geram dúvidas para programadores iniciantes. Entres elas encontra-se a Statement. Dada as alternativas abaixo, selecione a que define Statement. Implementado para acesso de uso geral do banco de dados. É útil quando você estiver usando as instruções SQL estáticas no tempo de execução. Não pode aceitar parâmetros. É responsável por fornecer a conexão de uma aplicação Java com o Banco de dados Implementado quando você planeja usar as instruções SQL muitas vezes. Aceita parâmetros de entrada em tempo de execução. Representa uma conexão a um banco de dados, a partir de uma URL JDBC recebida como parâmetro. Implementado quando você deseja acessar banco de dados procedimentos armazenados. Também pode aceitar parâmetros de entrada em tempo de execução. 4a Questão É um dos cinco elementos básicos que nos permitem manipular bancos de dados através da API JDBC. TagLib Servlets JSP DriverManager SGBD Explicação: A função primária do DriverManager é obter conexões com o banco a partir do driver JDBC e a string de conexão. 5a Questão O JDBC - Java DataBase Connectivity - é uma API que permite a interação com um SGBD (Sistema Gerenciador de Banco de Dados) em baixo nível, isto é, permite realizar conexões e consultas ao banco de dados. Sobre esta API, indique a afirmativa INCORRETA: Não é possível acessar ao banco de dados sem a instalação de um driver para o SGBD. Não é possível realizar as buscas sem tratar ou jogar exceções. Não é possível acessar um SGBD com o JDBC sem indicar seu endereço. Não é possível realizar uma busca sem realizar uma conexão. Não é possível construir aplicações para múltiplos SGBDs usando esta API. 6a Questão Para conectar uma aplicação ao banco de dados usamos drivers do tipo JDBC. Precisamos executar scripts SQL para acessarmos bancos relacionais e mantermos as informações. Quando estamos fazendo uma consulta, utilizamos um método específico, e quando queremos nos proteger de SQL Injection escolhemos um tipo que já possui tratamento para tal. Estamos nos referindo a: executeQuery - PreparedStatement executeSQL - Statement executeSQL - PreparedStatement executeUpdate - Statement executeQuery - Statement Explicação: O comando executeQuery efetua a consulta e retorna um ResultSet. Quanto ao PreparedStatement, ele permite a criação de SQL parametrizado. 7a Questão Dada a classe abaixo, complete as lacunas de forma correta: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Principal { public static void main(String[] args) { try { _______________("org.postgresql.Driver"); Connection con = __________("jdbc:postgresql:BancoProva","aluno","prova"); Statement stm =_____________________; ResultSet rs = ________________("select * from tabela"); while(________________) { System.out.println("Valor da primeira coluna do resultado" + rs.getString(1)); } con.close(); } catch(Exception e) { System.out.println("Erro:" + e.getMessage()); } } } DriverManager.getConnection, Class.forName, rs.createStatement(),stm.executeQuery, rs.next() Class.forName, DriverManager.getConnection, con.createStatament(),stm.executeQuery, rs.hasNext() Class.forName, DriverManager.getConnection, con.createStatement(),stm.executeQuery, rs.next() DriverManager.getConnection, Class.forName, con.createStatement(),stm.executeQuery, rs.next() DriverManager.getConnection,Class.forName, rs.createStatament(),stm.executeQuery, rs.hasNext() 8a Questão Java Database Connectivity(JDBC) consiste de um conjunto de classes e interfaces (API) escritas em Java que fazem o envio de instruções SQL para qualquer banco de dados relacional. Dentre as alternativas abaixo, assinale INCORRETA referente a Java Database Connectivity(JDBC): O PreparedStatement é uma subinterface de Statement É possivel acessar Banco de Dados que não possuem Driver JDBC próprio através da ponte JDBC-ODBC O executeQuery é um método da classe Connection para execução de uma consulta O método close() da classe Connection fecha uma conexão com o banco de dados Statement representa uma conexão estabelecida com o Banco de Dados 1a Questão Marque a opção correta sobre o conceito JDBC: são metadados sobre um objeto de conexão framework para desenvolvimento web uma classe Java que gera tabelas de banco de dados relacionais é o kit de desenvolvimento Java para implementação em dispositivos móveis tecnologia que permite aos programas Java interagir com os bancos de dados 2a Questão (TRE-RR/2015) A interface PreparedStatement do Java permite executar instruções SQL parametrizadas, ou seja, que primeiro são construídas e depois recebem parâmetros. Neste contexto, considere que no bloco de código abaixo con é um objeto da interface Connection que representa uma conexão com um banco de dados, estabelecida com sucesso: String sql = "insert into contatos (nome, email, endereco) values (_I_, _II_, _III_); PreparedStatement stmt = con.prepareStatement(sql); stmt.setString(1, "Paulo"); stmt.setString(2, "paulo@email.com.br"); stmt.setString(3, "Rua Vergueiro, 1567"); stmt.execute(); No bloco de código apresentado, as lacunas I, II e III devem ser preenchidas, correta e respectivamente, com: * "Paulo", "paulo@email.com.br", e "Rua Vergueiro, 1567" ${1}, ${2}, ${3} ? 1, 2, 3 3a Questão A linguagem Java apresenta como middleware padrão para acesso a bancos de dados o JDBC, cuja utilização envolve vários passos, indo desde o registro do Driver até a recepção da consulta em ResultSets. Neste processo podem ocorrer duas exceções principais, no que se refere ao uso do JDBC, as quais são: ClassNotFoundException e ArithmeticException ServletException e ArithmeticException SQLException e ServletException ClassNotFoundException e ServletException SQLException e ClassNotFoundException 4a Questão Qual das classes abaixo não está relacionada ao uso de banco de dados através do JDBC? DriverManager HttpRequest PreparedStatement Connection ResultSet Explicação: A classe HttpRequest está relacionada às requisições efetuadas via conexões HTTP. 5a Questão Complete as lacunas no trecho de código-fonte abaixo com os termos corretos: (1)____________ banco = DriverManager.getConnection(url, "usuario", "senha"); (2)____________ comandoSql = banco.createStatement(); (3)____________ resultados = comandoSql.executeQuery("SELECT codigo, nome FROM clientes"); while (resultados.next()) { System.out.println(resultados.getInt("codigo")); System.out.println(resultados.getString("nome")); } resultados.close(); comandoSql.close(); banco.close(); (1) Connection (2) Statement (3) ResultSet (1) DbConnection (2) SqlCommand (3) ResultSet (1) EntityManager (2) Query (3) List (1) Connection (2) Command (3) RecordSet (1) Database (2) Command (3) RecordSet Explicação: Com relação aos componentes utilizados, Connection encapsula uma conexão com o banco, Statement é um executor de SQL, e ResultSet recebe os dados da consulta em um cursor. 6a Questão Analise as seguintes afirmações a respeito de JSP: I. Em uma aplicação Web, há apenas um objeto page em cada JSP. II. Comentários JSP aparecem na resposta ao cliente. III. Os objetos com escopo session duram por toda a sessão de navegação do cliente. Assinale a opção correta. Apenas a afirmação I é verdadeira. Apenas a afirmação III é verdadeira. Nenhuma das afirmações é verdadeira. Apenas a afirmação II é verdadeira. As afirmações I, II e III são verdadeiras. 7a Questão Qual a classe de JDBC é responsável pela interface entre os clientes e os drivers JDBC? PreparedStatement EntityManager EntityManagerFactory DriverManager ResultSet 8a Questão Baseado na linha de comando abaixo, marque qual deve ser o comando seguinte: st = Conexao.getConection().createStatement(); List = st.executeUpdate("select * from ALUNOS"); List = st.executeQuery("select * from ALUNOS"); ResultSet rs = st.executeQuery("select * from ALUNOS"); List = st().executeUpdate("select * from ALUNOS"); ResultSet rs = st.executeUpdate("select * from ALUNOS"); Aula 5 a Questão Um elemento de grande relevância para a programação em qualquer linguagem da atualidade é o mapeamento objeto-relacional, responsável pela visualização e manipulação dos registros de bancos relacionais em termos de objetos da linguagem. Um exemplo deste tipo de ferramenta é o JPA, utilizado na linguagem Java, o qual usa anotações para determinar os tipos de relações expressos. Assinale a alternativa INCORRETA com relação a estas anotações: @OneToOne expressa relações do tipo um para um. @ManyToOne expressa relações do tipo muitos para um. @OneToMany expressa relações do tipo um para muitos. @OneToMany tem o mapeamento reverso definido como @ManyToOne. @ManyToOne recebe o valor mapeado através de uma coleção. 2a Questão Qual das seguintes consultas em JPQL retornaria corretamente todos os alunos que cursam o curso de "ADS", admitindo que existe um relacionamento de um para muitos entre cursos e alunos? SELECT c FROM Curso c WHERE c.aluno.nome = "ADS" SELECT * FROM Aluno a INNER JOIN Curso c ON a.cod_curso = c.codigo WHERE c.nome = "ADS" SELECT a FROM Aluno a WHERE a.nome = "ADS" SELECT a FROM Aluno a WHERE a.getCurso().getNome().equals("ADS") SELECT a FROM Aluno a WHERE a.curso.nome = "ADS" Explicação: Na instrução SELECT a FROM Aluno a WHERE a.curso.nome = "ADS" serão selecionados os alunos em que o campo de relacionamento (ManyToOne) curso apresenta o nome "ADS". 3a Questão Qual das seguintes anotações de JPA permite especificar que uma classe deve ser mapeada para o modelo relacional? @Id @GeneratedValue @Column @SupressWarning @Entity Explicação: Uma classe anotada com @Entity funciona como uma entidade mapeada para a estrutura relacional. 4a Questão A anotação @ManyToMany será usada toda vez que quisermos indicar um relacionamento do tipo: Muitos para muitos Muitos para um Um para muitos Um para um Muitos para nenhum 5a Questão Arquivo de configuração necessário para a configuração das conexões no JPA: context.xml readme.txt persistence.xml web.xml manifest 6a Questão A sequencia correta de anotações JPA para a classe abaixo é? @1_______ @2_______(name="Alunos") public class Alunoimplements Serializable{ @3_________ private String matricula; @4_________ private String nome; @6________(mappedBy="alunos") private Set turmas; ... @Entity, @Table, @Id, @Column, @ManyToMany @Table, @Id, @Entity, @Column, @ManyToMany @Entity, @Table, @ManyToMany, @Id, @Column @Entity, @Id, @Table, @Column, @ManyToMany @Entity, @Column, @Table, @Id, @ManyToMany Explicação: Uma entidade é definida com @Entity e a tabela de gravação por @Table. As colunas são definidas com @Column, sendo a chave primária acrescida de @Id. Finalmente, os relacionamentos NxN são definidos com @ManyToMany. 7a Questão A API Hibernate é usada para que finalidade em uma aplicação web? Encapsula o paradigma MVC fornecendo suporte para a implementação deste padrão. Faclita o manuseio de objetos de interface com o usuário, tornando mais veloz a criação das interfaces. Fornece principalmente suporte de log e testes de aplicações web. Realiza o mapeamento objeto-relacional, permitindo não usar SQL no código. Essencialmente como uma API de segurança fornece recursos de identificação de invasões. Explicação: O framework Hibernate foi um dos primeiros a efetuar o mapeamento objeto- relacional de forma simples. Inicialmente utilizava XML, e hoje em dia trabalha com as anotações do JPA. 8a Questão Toda entidade deve ter um atributo mapeado com a anotação @id. Esta anotação indica que o atributo será mapeado como chave-primária. Caso o valor da chave primária tenha que ser gerado automaticamente, deve ser usada, também, uma anotação indicativa. Assinale a alternativa que apresenta a anotação indicativa de geração automática de valores para chave primária. @GenerateValue @Seed @Temporal @Column @PrimaryKey 1a Questão A anotação @OneToOne será usada toda vez que quisermos indicar um relacionamento do tipo: Um para muitos Muitos para um Muitos para muitos Muitos para nenhum Um para um 2a Questão "Especificação Java, JSR 14, que permite escrever códigos reutilizáveis por diferentes tipos de objetos; essa especificação determina ao compilador, qual tipo de classe deve ser interpretada no momento da compilação, permitindo ao programador especificar qualquer tipo de objeto para ser manipulado em uma classe". O texto se refere a: Generics Anotações Classes JSP JPA 3a Questão Os estados do ciclo de vida de uma instância de uma entidade, definidos na JPA 2.0, são gerenciado (managed), temporário (temporary), permanente (permanent) e destacado (detached). novo (new), temporário (temporary), permanente (permanent) e destacado (detached). novo (new), gerenciado (managed), destacado (detached) e removido (removed). ativo (active), inativo (inactive) e removido (removed). novo (new), temporário (temporary) e destacado (detached) 4a Questão Um elemento de grande relevância para a programação em qualquer linguagem da atualidade é o mapeamento objeto-relacional, responsável pela visualização e manipulação dos registros de bancos relacionais em termos de objetos da linguagem. Um exemplo deste tipo de ferramenta é o JPA, utilizado na linguagem Java, o qual usa coleções para receber relações do tipo ¿um-para-muitos¿. Assinale a alternativa CORRETA com relação às coleções Java: As coleções do tipo Set permitem objetos em duplicidade. As coleções do tipo Set são uma das possíveis implementações de HashSet. As coleções do tipo LinkedList são implementadas com arrays, sendo muito utilizadas. As coleções do tipo TreeMap são implementadas com uso de árvores AVL. As coleções do tipo Map armazenam pares (chave, valor), onde estes podem ser qualquer tipo de objeto. 5a Questão Complete as lacunas no trecho de código-fonte abaixo com os termos corretos: __________ emf = Persistence.createEntityManagerFactory("PU"); __________ em = emf.createEntityManager(); em.getTransaction().begin(); c = new Curso(3, "EE"); em.__________(c); em.getTransaction().commit(); EntityManagerFactory; EntityManager; persist Database; Entity; put EntityFactory; EntityManager; save EntityManager; Command; insert Connection; Statement; execute Explicação: Um elemento essencial no JPA é a classe EntityManager, responsável pelo manuseio das diversas entidades. Objetos desta classe são gerados a partir do EntityManagerFactory, e o método persist viabiliza a gravação de uma entidade no banco de dados. 6a Questão A anotação @ManytToOne será utilizada toda vez que quisermos indicar um relacionamento do tipo: Muitos para muitos Muitos para um Um para um Cascade Um para muitos 7a Questão Arquivo de configuração necessário para a configuração das conexões no JPA: persistence.xml web.xml context.xml manifest readme.txt 8a Questão A anotação @ManyToMany será usada toda vez que quisermos indicar um relacionamento do tipo: Muitos para nenhum Um para um Um para muitos Muitos para muitos Muitos para um
Compartilhar