Postado por Vitor Almeida em 24 janeiro 2013 s 21:16 Enviar mensagem Exibir blog Oi pessoal, hoje saiu o gabarito da prova para a EBSERH, feita pela Banca IADES. No geral, achei as questes bem tranquilas. Mas, tivemos alguns erros de digitao e o uso da Wikipedia como referncia bibliogrfica, comprometendo a qualidade da banca. Vamos comentar as questes de Java! Analista TI IADES Processos e Desenvolvimento Considere o cdigo Java a seguir, para respondes s questes 42 e 43. 20 public void cadastrar (Contato c) throws Exception{ 21 abrirbanco(); 22 String sql = INSERT INTO contato VALUES(null,???); 23 stmt = (PreparedStatement) con.preparedStatement (sql); 24 stmt.setString(1, c.getNome()); 25 stmt.setString(2, c.getMail()); 26 stmt.setString(3, c.getTelefone()); 27 stmt.execute(); 28 fecharBanco(); 29 } Questo 42 Na funo criada na linha 20, do cdigo anterior, qual o objeto instanciado? A. Cadastrar. B. Exeption. C. c. D. SQL. E. Stmt. Comentrios: A questo trata de um cdigo que faz uma conexo JDBC com um banco usando a interface PreparedStatement. A questo no cobra conhecimentos de JDBC, fica apenas no bsico: o que um objeto e como ele aparece em um cdigo Java. No entanto, ela faz uma pequena confuso quando pergunta qual o objeto instanciado. Um objeto instanciado (ou criado) por meio da instruo new. Assim, um objeto contatoTeste pertencente classe Contato seria criado por meio do comando abaixo: Contato contatoTeste = new Contato(); E no vemos nenhum new na linha 20, concordam? O que o examinador pensou ao fazer pergunta foi: Onde temos um objeto na linha 20? E a resposta muito fcil! Na linha 20 temos uma declarao do mtodo cadastrar que : pblico (public), ou seja, qualquer objeto de qualquer classe pode acess-lo diretamente; tem um tipo de retorno void (no retorna nada); recebe como parmetro um objeto do tipo Contato (e esta a resposta); e pode lanar uma exceo, que deve ser tratada por quem chamar o mtodo. Quando voc declara um parmetro em um mtodo, voc d um nome para este parmetro. O nome usado dentro do corpo do mtodo para referenciar o argumento que foi passado para o mtodo. No nosso mtodo cadastrar temos um parmetro chamado c. Este parmetro um objeto da classe Contato e por isso nosso gabarito a letra C. Gabarito: C
Questo 43 Ainda sobre o cdigo anterior correto afirmar que A. a funo criada grava dados em uma tabela de banco de dados, chamada contata, com 3 (trs) campos. B. o comando execute executa a SQL da funo. C. na funo existem dois campos do tipo String e dois do tipo INT. D. a funo no retorna VOID. E. O comando prepareStatement pode ser retirado da funo sem alterar a sua sintaxe. Comentrios: Essa a pergunta melhor elaborada e que realmente cobra um conhecimento mais apurado do concurseiro. Vamos analisar cada uma das alternativas: (A): J comea errando chamando a tabela de contata quando, na verdade, o nome dela na instruo SQL que armazenada dentro da String abaixo: String sql = INSERT INTO contato VALUES(null,???); contato! Supondo que seja erro de digitao, ainda assim temos quatro valores, pois o comando INSERT INTO, que um comando SQL para inserir comandos em uma tabela tem a seguinte sintaxe (mas no era s de Java essa questo? Hehehe): INSERT INTO nome_da_tabela VALUES(campos da tabela separados por vrgula) E ns temos QUATRO campos: null e mais 3 ? (que ns iremos aprender j j o que significa o ? e veremos que tem um erro de sintaxe no cdigo: t faltando as vrgulas). (B): a nossa resposta. O mtodo execute() executa o comando SQL que foi preparado pelo objeto com a interface PreparedStatement, simples assim! (C): Vamos antes nos aprofundar um pouquinho nessa histria de PreparedStatement. Um objeto que implementa esta interface serve para armazenar um comando SQL pr-compilado para que seja usado mais eficientemente depois. O comando abaixo: stmt = (PreparedStatement) con.preparedStatement (sql); Cria uma referncia chamada stmt ao objeto que retorna do mtodo con.preparedStatement() [suponhamos que con um objeto que representa uma conexo ativa criada no mtodo abrirbanco() da linha anterior]. O com.preparetStatement() retorna uma SQL pr-compilada e tem como parmetro uma String com um comando SQL (no nosso caso chamada sql). O ltimo detalhe o casting (PreparedStatement) que informa a todo mundo que essa SQL pr-compilada, que ser referenciada por stmt, possui a interface PreparedStatement. Da, nosso querido programa apresenta as seguintes linhas para gente: stmt.setString(1, c.getNome()); stmt.setString(2, c.getMail()); stmt.setString(3, c.getTelefone()); O setString da interface PreparedStatement serve para colocar uma String dentro do comando SQL que foi passado anteriormente. O pulo do gato que o primeiro argumento a posio no SQL onde a String, que o segundo parmetro, deve ser colocada. A posio definida pelo ? no comando SQL. Assim, temos 3 ? e colocaremos 3 Strings (ou VARCHAR, j que no final das contas isso vai parar dentro de um Banco de Dados) dentro do SQL. Com a execuo das trs linhas de cdigo acima, o SQL ficaria: INSERT INTO contato VALUES(null valor_retornado_de_c.getNome valor_retornado_de_c.getMail valor_retornado_de_c.getTelefone); Ento nosso SQL tem 3 campos String invalidando a afirmativa. O detalhe que temos um erro no SQL acima, pois est faltando as vrgulas separando os campos. (D): essa a alternativa que separa os perdidos dos que possuem o mnimo de conhecimento em Java. Todo mundo sabe que o tipo de retorno declarado no mtodo void, ento o mtodo retorna void. Afirmativa errada. (E) Primeiro, no temos nenhum prepareStatement no cdigo. Temos preparedStatement que bem diferente. Ignorando o erro de digitao da banca, lgico que no podemos tirar o preparedStatement do cdigo, j que o mtodo de com que retorna o SQL pr-compilado. Supondo que tenhamos um duplo erro de digitao e o examinador estivesse querendo falar em (PreparedStatement) que o casting da interface, tambm precisamos dele, porque o mtodo setString() dessa interface. Gabarito: B
Analista TI Sistemas Operacionais Questo 48 uma classe na linguagem de programao Java que, dinamicamente, processa requisies e respostas, proporcionando, dessa maneira, novos recursos aos servidores. A definio, mais usada, considera-os extenses de servidores. Este mdulo que estende a funcionalidade de um servidor web atravs de mdulos de aplicao implementados, em Java, o A. plugin. B. servlet. C. ASP. D. PHP. E. Java. Comentrios: Questo fcil, vejamos a definio de servlet no tutorial de Java EE oficial da Oracle: A servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed by means of a request-response programming model. Ou: Um servlet uma classe da linguagem de programao Java usada para ampliar a capacidade de servidores de aplicaes acessadas por meio de um modelo de programao requisio- resposta. Pra completar, e matar a questo, vamos Wikipedia: Servlet (servidorzinho em traduo livre) um componente como um servidor, que gera dados HTML e XML para a camada de apresentao de uma aplicao Web. basicamente uma classe na linguagem de programao Java que dinamicamente processa requisies e respostas, proporcionando dessa maneira novos recursos aos servidores. A definio mais usada considera-os extenses de servidores. Servlet um mdulo que estende a funcionalidade de um servidor Web, atravs de mdulos de aplicao implementados em Java. Ser que o examinador copiou da Wikipedia? Dvidas? Gabarito: B
Analista TI Suporte e Redes Questo 33 Sobre o Apache Tomcat, assinale a alternativa correta. A. Trata-se de um servidor de aplicaes JEE, muito utilizado por sites elaborados em JAVA. B. um servidor de controle de aeronaves de combate, tendo como base o helicptero de ataque Apache e o caa F14 Tomcat. C. Consiste em uma interface de configurao de pginas Apache. D. um programa desenvolvido em Java e que mede parmetros de pginas web. E. Trata-se de um servidor de aplicaes ASP, que torna alguns sites compatveis com o servidor de pginas Apache. Comentrios: Isso comdia ? Hauhauhauahuahau Essa letra (B) extremamente ridcula! Todo mundo sabe que o Apache Tomcat um servidor de aplicaes JEE. Provavelmente, o examinador destilou seus conhecimentos ao escrever sozinho, sem a ajuda de ningum, a alternativa A, que a resposta. Da Wikipedia no foi (rapaz, t at legal a definio da WIkipedia): O Tomcat um servidor web Java, mais especificamente, um container de servlets. O Tomcat um servidor de aplicaes JEE, porm no um servidor de EJBs. Desenvolvido pela Apache Software Foundation, distribudo como software livre dentro do conceituado projeto Apache Jakarta, sendo oficialmente endossado pela Sun como a implementao de referncia para as tecnologias Java Servlet e JavaServer Pages (JSP). Ele cobre parte da especificao J2EE com tecnologias como servlet e JSP, e tecnologias de apoio relacionadas como Realms e segurana, JNDI Resources e JDBC DataSources. As outras alternativas so absurdas, o que facilitou bastante a vida do concurseiro. Gabarito: A