Buscar

A2 PROGRAMAÇÃO ORIENTADA A OBJETOS II(IL10329) UVA Veiga de Almeida UNIJORGE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Local: Sala 1 - Sala de Aula / Andar / Polo Nova Iguaçu / POLO NOVA IGUAÇU - RJ
Acadêmico: EAD-IL10329-20223A
Aluno: YURI DE LEMOS ANTUNES RIBEIRO
Avaliação: A2-
Matrícula: 20203301618
Data: 23 de Setembro de 2022 - 08:00 Finalizado
Correto Incorreto Anulada  Discursiva  Objetiva Total: 10,00/10,00
1  Código: 38256 - Enunciado: No desenvolvimento de aplicações a partir da linguagem Java, os
tipos básicos são usados para definir as características de um objeto. Sabemos ainda que
podemos utilizar a Agregação para permitir a criação de objetos a partir de outros objetos. Em
algumas situações, tal como no uso conjunto com ArrayList, os tipos básicos primitivos não
podem ser usados, e, para isso, recorremos às classes Wrapper.Indique, dentre as opções a seguir,
aquela que apresenta corretamente os relacionamentos entre os tipos básicos primitivos e sua
classe Wrapper correspondente:
 a) int : Integer e char : String.
 b) int : Int e char : Character.
 c) int : Int e char : String.
 d) int : Int e char : Char.
 e) int : Integer e char : Character.
Alternativa marcada:
e) int : Integer e char : Character.
Justificativa: Resposta correta:int : Integer e char : Character. Correta. O tipo básico primitivo int
tem como classe Wrapper correspondente a classe Integer e o tipo básico primitivo char tem
correspondência com a classe Wrapper Character. Distratores:int : Int e char : Char. Incorreta. O
tipo básico primitivo int tem como classe Wrapper correspondente a classe Integer, assim como a
segunda declaração também é incorreta, uma vez que o tipo básico primitivo char tem como
classe Wrapper correspondente a classe Character.int : Int e char : Character. Incorreta. O tipo
básico primitivo int tem como classe Wrapper correspondente a classe Integer, apesar de a
segunda declaração estar correta, pois o tipo básico primitivo char tem como classe Wrapper
correspondente a classe Character.int : Integer e char : String. Incorreta. Apesar do tipo básico
primitivo int ter como classe Wrapper correspondente a classe Integer, o tipo básico primitivo char
tem como classe Wrapper correspondente a classe Character. Uma vez que o tipo String é um tipo
básico também, mas não é um tipo básico primitivo, o tipo String não faz parte do conjunto de
classes Wrapper.int : Int e char : String. Incorreta. O tipo básico primitivo int tem como classe
Wrapper correspondente a classe Integer. Já o tipo básico primitivo char tem como classe Wrapper
correspondente a classe Character. Uma vez que o tipo String é um tipo básico também, mas não é
um tipo básico primitivo, o tipo String não faz parte do conjunto de classes Wrapper.
0,50/ 0,50
2  Código: 38319 - Enunciado: No desenvolvimento de aplicações em Java muitas vezes precisamos
armazenar coleções de dados na memória em estruturas adequadas para a recuperação eficiente
desses dados. Para as diferentes formas de armazenamento destes dados em memória, a
linguagem Java disponibiliza três tipos de armazenamento, entre conjuntos, listas e
associações.Identifique, dentre as opções a seguir, a classe de coleção Java adequada para a
implementação de uma fila ou pilha:
 a) HashSet.
0,50/ 0,50
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
1 of 8 28/09/2022 22:05
 b) LinkedList.
 c) Vector.
 d) LinkedHashSet.
 e) ArrayList.
Alternativa marcada:
b) LinkedList.
Justificativa: Resposta correta:LinkedList. Correta. A classe LinkedList é semelhante a um
ArrayList, mas, por ser duplamente encadeada, a classe LinkedList se torna essencial para a
implementação de estruturas de dados dos tipos filas e pilhas.
Distratores:ArrayList. Incorreta. A classe Arraylist, apesar de ser adequada para o armazenamento
de dados na forma de listas, por não ser duplamente encadeada não é adequada para o uso na
implementação de estruturas de dados dos tipos filas e pilhas.Vector. Incorreta. A classe Vector,
apesar de ser adequada para o armazenamento de dados na forma de listas, possui métodos
sincronizados, o que pode comprometer a eficiência, além de também não ser duplamente
encadeada. Essa classe não é adequada para o uso na implementação de estruturas de dados dos
tipos filas e pilhas.HashSet. Incorreta. A classe Hashset é adequada para o armazenamento de
dados na forma de conjuntos e não de listas, uma vez que estruturas de dados dos tipos filas e
pilhas são tipos de filas.LinkedHashSet. Incorreta. A classe LinkedHashset é adequada para o
armazenamento de dados na forma de conjuntos e é duplamente encadeada, permitindo acesso
rápido ao elemento anterior e posterior, mas essa classe não é adequada para armazenar dados
na forma de listas.
3  Código: 38254 - Enunciado: Quanto à aplicação dos conceitos de Programação Orientada a
Objetos no desenvolvimento de sistemas, o conceito de agregação permite que possamos criar
novos objetos a partir de outros objetos mais simples. Identifique, entre as declarações de
atributos para uma classe qualquer, aquela que caracteriza uma declaração de Agregação:
 a) int quantidade.
 b) String nome.
 c) Tampa tampa.
 d) Double valor.
 e) double preco.
Alternativa marcada:
c) Tampa tampa.
Justificativa: Resposta correta:Tampa tampa. Correta. A declaração de um atributo como sendo
do tipo "Tampa" em uma classe indica que o objeto tampa será uma
Agregação. Distratores:double preco. Errada. O atributo "preco" foi declarado a partir de um tipo
básico "double", não caracterizando uma classe que defina um outro objeto. Para que um atributo
seja considerado uma Agregação, este deve ser do tipo de uma classe que defina as características
de outro objeto.int quantidade. Errada. O atributo "quantidade" foi declarado a partir de um tipo
básico "int", não caracterizando uma classe que defina um outro objeto. Para que um atributo seja
considerado uma Agregação, este deve ser do tipo de uma classe que defina as características de
outro objeto.String nome. Errada. O atributo "nome" foi declarado a partir de um tipo básico
"String", não caracterizando uma classe que defina um outro objeto. O tipo "String", apesar de ser
considerado uma classe, serve apenas para armazenar uma cadeia de caracteres (texto) de forma
genérica. Para que um atributo seja considerado uma Agregação, este deve ser do tipo de uma
classe que defina as características de outro objeto.Double valor. Errada. O atributo "valor" foi
0,50/ 0,50
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
2 of 8 28/09/2022 22:05
declarado a partir da classe "Wrapper Double", não caracterizando uma classe que defina um
outro objeto, mas sim a representação de apenas um valor "double" de forma genérica, para uso
em situações em que não possamos usar tipos básicos, assim como no uso conjunto com
"ArrayList". O tipo "Double", apesar de ser considerado uma classe, serve apenas para armazenar
um valor real. Para que um atributo seja considerado uma Agregação, este deve ser do tipo de
uma classe que defina as características de outro objeto.
4  Código: 38372 - Enunciado: Ao desenvolver sistemas baseados em programação orientada a
objetos, devemos seguir uma série de conceitos para termos um melhor aproveitamento dos
recursos e maior facilidade de manutenção. A seguir são apresentadas algumas afirmações a
respeito dos conceitos de programação orientada a objetos em Java.
Analise cada afirmação apresentada para determinar aquelas que são verdadeiras:I - O
Particionamento permite que as características de um objeto possam ser divididas em objetos
menores e mais simples, que possam ser Agregados de forma a recriar o objeto original.II - A
Agregação permite que uma classe possa herdar os membros de uma outra classe. III - Na
Composição ou Agregação por Composição os objetos Agregados são instanciados na própria
classe que as agrega.IV - Na Agregação Compartilhada os objetos agregados da classe são
destruídos, caso o objeto da classe principal seja destruído.
São verdadeiras as afirmações que se apresentam em:
 a) II e IV, apenas.
 b) I e IV,apenas.
 c) I e III, apenas.
 d) I e II, apenas.
 e) II e III, apenas.
Alternativa marcada:
c) I e III, apenas.
Justificativa: Resposta correta:I e III, apenas.
I - O Particionamento permite que as características de um objeto possam ser divididas em
objetos menores e mais simples, que possam ser Agregados de forma a recriar o objeto original.
Correta. Este é o objetivo principal da Agregação.III - Na Composição ou Agregação por
Composição os objetos Agregados são instanciados na própria classe que as agrega. Correta.
Neste tipo de Agregação os objetos agregados são destruídos juntos quando o objeto da classe
principal é destruído e por isso são instanciados na classe principal. Distratores:II - A Agregação
permite que uma classe possa herdar os membros de uma outra classe. Errada. Este é o objetivo
da Herança e não da Agregação.IV - Na Agregação Compartilhada os objetos agregados da classe
são destruídos, caso o objeto da classe principal seja destruído. Errada. Neste tipo de Agregação
os objetos agregados não são destruídos juntos quando o objeto da classe principal é destruído, e,
dessa forma, os objetos agregados não são instanciados na classe principal, mas passados como
parâmetros em outros métodos.
1,50/ 1,50
5  Código: 38336 - Enunciado: No uso de coleções de dados em Java podemos trabalhar com dados
em memória na forma de listas, conjuntos e associações. Para a implementação de coleções de
dados, a biblioteca da linguagem Java disponibiliza um conjunto de classes prontas que podem
ser utilizadas em nossos projetos. Analise as afirmações acerca do uso de coleções de dados
apresentadas a seguir, definindo aquelas que são consideradas verdadeiras. As classes que
implementam a interface List trabalham com um índice, com isso podemos inserir um item no
meio ou no final de uma lista.A classe Vector tem as mesmas características de ArrayList, porém
1,50/ 1,50
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
3 of 8 28/09/2022 22:05
seus métodos são sincronizados e, por esta razão, o seu uso não influencia no tempo de
execução.A classe Hashtable é equivalente à classe HashMap, com a diferença que seus métodos
são sincronizados e faz parte do conjunto de classes que manipulam dados na forma de lista.A
classe LinkedList é essencial quando se deseja implementar uma fila ou pilha. Estão corretas as
afirmações:
 a) I e IV, apenas.
 b) II e IV, apenas.
 c) I e II, apenas.
 d) I e III, apenas.
 e) II e III, apenas.
Alternativa marcada:
a) I e IV, apenas.
Justificativa: Resposta correta:I e IV, apenas.
I. As classes que implementam a interface List trabalham com um índice, com isso podemos
inserir um item no meio ou no final de uma lista. Correta. As classes do tipo List podem inserir
elementos em qualquer lugar da lista.IV. A classe LinkedList é essencial quando se deseja
implementar uma fila ou pilha. Correta. A classe LinkedList é duplamente encadeada, e, desta
forma, é considerada ideal para a implementação de estruturas de dados do tipo fila ou pilha.
Distratores:II. A classe Vector tem as mesmas características de ArrayList, porém seus métodos são
sincronizados e, por esta razão, o seu uso não influencia no tempo de execução. Incorreta. A classe
Vector possui as mesmas características da classe ArrayList e possui métodos sincronizados, mas,
por ter seus métodos sincronizados, faz com que o tempo de sincronização influencie o tempo de
interação dos elementos, gastando um pouco mais de tempo de execução.III. A classe Hashtable é
equivalente à classe HashMap, com a diferença que seus métodos são sincronizados e faz parte do
conjunto de classes que manipulam dados na forma de lista. Incorreta. É correto que a classe
Hashtable é equivalente à classe HashMap e que seus métodos são sincronizados, mas esta classe
não faz parte do conjunto de classes que manipulam dados na forma de lista, sendo uma classe do
conjunto que manipula dados por associação.
6  Código: 38361 - Enunciado: No desenvolvimento de aplicações em Java com uso de interfaces
gráficas para a interação com o usuário, a entrada de dados digitados pelo usuário deve ser
realizada por caixas de textos (TextField), independentemente se os valores digitados deverão ser
do tipo texto ou numérico. Isso ocorre porque não temos caixas de números, mas com o uso de
caixas de textos, os valores numéricos poderão ter o seu conteúdo convertido para o tipo
numérico adequado. Em um projeto é necessário receber como entrada de dados o nome, a idade
e o CR de um aluno. Os componentes de tela foram respectivamente identificados por: edit1, edit2
e edit3. Analise as codificações apresentadas a seguir e selecione aquela que atenderá
corretamente as necessidades do projeto, para receber os dados de entrada da tela nas devidas
variáveis, em função do tipo de dado de entrada e do método de leitura do componente:
 a) String nome = edit1.setText().toString(); int idade =
Integer.parseInt(edit2.setText().toString()); double peso =
Double.parseDouble(edit3.setText().toString());
 b) String nome = edit1.getText().toString(); int idade = edit2.getText().toString(); double
peso = edit3.getText().toString();
 c) String nome = ed1.getText().toString(); int idade =
Integer.parseInt(ed2.getText().toString()); double peso =
Double.parseDouble(ed3.getText().toString());
 d) String nome = edit1.getText().toString(); int idade =
1,50/ 1,50
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
4 of 8 28/09/2022 22:05
Number.parseNumber(edit2.getText().toString()); double peso =
Number.parseNumber(edit3.getText().toString());
 e) String nome = edit1.setText().toString(); int idade =
Number.parseNumber(edit2.setText().toString()); double peso =
Number.parseNumber(edit3.setText().toString());
Alternativa marcada:
c) String nome = ed1.getText().toString(); int idade = Integer.parseInt(ed2.getText().toString()); 
 double peso = Double.parseDouble(ed3.getText().toString());
Justificativa: Resposta correta: String nome = ed1.getText().toString(); int idade =
Integer.parseInt(ed2.getText().toString()); double peso =
Double.parseDouble(ed3.getText().toString());Correta. Dados do tipo texto não necessitam de
conversão, já que um EditText é utilizado para digitação de textos. Dados do tipo numérico
necessitam de conversão, sendo que para int, utilizamos o método Integer.parseInt() e para
double devemos usar o método Double.parseDouble(). É importante também utilizar o método
correto para leitura do dado no componente, no caso o getText(). Distratores: String nome =
edit1.getText().toString(); int idade = edit2.getText().toString(); double peso =
edit3.getText().toString();Incorreta. Nesta opção, não foram realizadas as conversões de tipo texto
(textField) para os tipos numéricos adequados. Já o método de obtenção dos dados nos
componentes está correto ao se utilizar o método getText(). String nome =
edit1.setText().toString(); int idade = Number.parseNumber(edit2.setText().toString()); double
peso = Number.parseNumber(edit3.setText().toString());Incorreta. Nesta opção, existe uma
tentativa de realizar as conversões de tipo texto (TextField) para os tipos numéricos adequados,
mas o uso do método Number.parseNumber() para ambos os casos não está correto. Além disso, o
método de obtenção dos dados nos componentes não está correto ao se utilizar o método
setText(). String nome = edit1.setText().toString(); int idade =
Integer.parseInt(edit2.setText().toString()); double peso =
Double.parseDouble(edit3.setText().toString());Incorreta. Nesta opção, as conversões de tipo texto
(TextField) para os tipos numéricos adequados está correta ao se utilizar os métodos
Integer.parseInt() e Double.parseDouble(), mas o método de obtenção dos dados nos
componentes não está correto ao se utilizar o método setText(). String nome =
edit1.getText().toString(); int idade = Number.parseNumber(edit2.getText().toString()); double
peso = Number.parseNumber(edit3.getText().toString());Incorreta.Nesta opção, existe uma
tentativa de realizar as conversões de tipo texto (TextField) para os tipos numéricos adequados,
mas o uso do método Number.parseNumber() para ambos os casos não está correto. Já o método
de obtenção dos dados nos componentes está correto ao se utilizar o método getText().
7  Código: 38369 - Enunciado: Uma equipe de projeto está participando do desenvolvimento de um
sistema de informação para uma empresa cliente. Você é um dos desenvolvedores e necessita
criar um método para a alteração de dados de um determinado cliente. A tabela Clientes é
baseada na classe Cliente. A classe Cliente e a tabela Clientes possuem os seguintes atributos:
AtributoTipoidInteironomeTextocpfInteirodescontoReal
Sabe-se que o atributo id é um campo autoincrementado da tabela, que a classe Cliente possui
todos os métodos de acesso implementados e que os dados do cliente a ser alterado foram
passados por parâmetro a partir do objeto cliente.Compare e avalie, dentre as opções a seguir,
aquela que apresenta corretamente a codificação da preparação e execução da consulta na tabela
Clientes da base de dados para a alteração do cliente selecionado:
 a) String consulta = "UPDATE Clientes SET id = " + cliente.getId() + ", nome='" +
cliente.getNome() + "', cpf=" + cliente.getCpf() + ", desconto=" +
2,00/ 2,00
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
5 of 8 28/09/2022 22:05
cliente.getDesconto();Statement st = acesso.con.createStatement();st.executeUpdate(consulta);
 b) String consulta = "UPDATE Clientes SET ", nome='" + cliente.getNome() + "', cpf=" +
cliente.getCpf() + ", desconto=" + cliente.getDesconto() + " WHERE id=" +
cliente.getId();Statement st = acesso.con.createStatement();st.executeQuery(consulta);
 c) ResultSet rs; String consulta = "UPDATE Clientes SET id = " + cliente.getId() + ", nome='"
+ cliente.getNome() + "', cpf=" + cliente.getCpf() + ", desconto=" +
cliente.getDesconto();Statement st = acesso.con.createStatement();rs = st.executeQuery(consulta);
 d) String consulta = "UPDATE Clientes SET ", nome='" + cliente.getNome() + "', cpf=" +
cliente.getCpf() + ", desconto=" + cliente.getDesconto() + " WHERE id=" +
cliente.getId();Statement st = acesso.con.createStatement();st.executeUpdate(consulta);
 e) String consulta = "UPDATE Clientes SET id = " + cliente.getId() + ", nome='" +
cliente.getNome() + "', cpf=" + cliente.getCpf() + ", desconto=" +
cliente.getDesconto();Statement st = acesso.con.createStatement();st.executeQuery(consulta);
Alternativa marcada:
d) String consulta = "UPDATE Clientes SET ", nome='" + cliente.getNome() + "', cpf=" +
cliente.getCpf() + ", desconto=" + cliente.getDesconto() + " WHERE id=" +
cliente.getId();Statement st = acesso.con.createStatement();st.executeUpdate(consulta);
Justificativa: Resposta correta:String consulta = "UPDATE Clientes SET ", nome='" +
cliente.getNome() + "', cpf=" + cliente.getCpf() + ", desconto=" + cliente.getDesconto() + "
WHERE id=" + cliente.getId();Statement st =
acesso.con.createStatement();st.executeUpdate(consulta);Correta. Para a alteração de um
determinado cliente, é necessário definir, a partir da cláusula WHERE, o id específico, caso
contrário, a falta desta identificação fará com que a aplicação tente alterar todos os registros da
tabela. Para a manipulação de registros da tabela (Inclusão, Exclusão e Alteração) é correto utilizar
o método executeUpdate() e não o método executeQuery(), que é responsável por buscar registros
nas tabelas.
Distratores:String consulta = "UPDATE Clientes SET id = " + cliente.getId() + ", nome='" +
cliente.getNome() + "', cpf=" + cliente.getCpf() + ", desconto=" +
cliente.getDesconto();Statement st =
acesso.con.createStatement();st.executeQuery(consulta);Incorreta. Esta opção está incorreta
porque a cláusula WHERE não foi utilizada, portanto esta consulta irá tentar alterar todos os
registros da tabela e não um registro específico. Além disso, foi utilizado o método de execução
executeQuery(), que é usado para realizar consultas de busca na base de dados e não para
manipulação (executeUpdate()), como é o caso da alteração. String consulta = "UPDATE Clientes
SET id = " + cliente.getId() + ", nome='" + cliente.getNome() + "', cpf=" + cliente.getCpf() + ",
desconto=" + cliente.getDesconto();Statement st =
acesso.con.createStatement();st.executeUpdate(consulta);Incorreta. Esta opção está incorreta
porque a cláusula WHERE não foi utilizada, portanto esta consulta irá tentar alterar todos os
registros da tabela e não um registro específico. Já o método de execução utilizado está correto,
uma vez que, para a manipulação de registros da tabela (Inclusão, Exclusão e Alteração), é correto
utilizar o método executeUpdate() e não o método executeQuery(), que é responsável por buscar
registros nas tabelas.
String consulta = "UPDATE Clientes SET ", nome='" + cliente.getNome() + "', cpf=" +
cliente.getCpf() + ", desconto=" + cliente.getDesconto() + " WHERE id=" +
cliente.getId();Statement st = acesso.con.createStatement();st.executeQuery(consulta);Incorreta.
Nesta opção a construção da consulta está correta, mas o método de execução executeQuery() é
usado para realizar consultas de busca na base de dados e não para manipulação
(executeUpdate()), como é o caso da alteração.
ResultSet rs; String consulta = "UPDATE Clientes SET id = " + cliente.getId() + ", nome='" +
cliente.getNome() + "', cpf=" + cliente.getCpf() + ", desconto=" +
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
6 of 8 28/09/2022 22:05
cliente.getDesconto();Statement st = acesso.con.createStatement();rs =
st.executeQuery(consulta);Incorreta. Esta opção está incorreta porque, para a exclusão de um
determinado cliente, é necessário definir, a partir da cláusula WHERE, o id específico, caso
contrário, a falta desta cláusula fará com que a aplicação tente alterar todos os registros da tabela.
Além disso, o método de execução executeQuery() é usado para realizar consultas de busca na
base de dados e retornar o resultado da busca a um RecordSet e não para manipulação
(executeUpdate()), como é o caso da alteração.
8  Código: 38365 - Enunciado: Uma empresa necessita incluir em seu sistema de informação, um
método para a inclusão de novos clientes em sua tabela de Clientes. A tabela Clientes é baseada
na classe Cliente. A classe Cliente e a tabela Clientes, possuem os seguintes atributos:
AtributoTipoidInteironomeTextocpfInteirodescontoReal
Sabe-se que o atributo id é um campo autoincrementado da tabela, que a classe Cliente possui
todos os métodos de acesso implementados e que os dados do novo cliente foram passados por
parâmetro a partir do objeto cliente.Compare e avalie, dentre as opções a seguir, aquela que
apresenta corretamente a codificação da preparação e execução da consulta na tabela Clientes da
base de dados para a inclusão de um novo cliente:
 a) String consulta = "INSERT into Clientes (nome, cpf, desconto) " + "VALUES('" +
cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() + ")";Statement st =
acesso.con.createStatement();st.executeQuery(consulta);
 b) String consulta = "INSERT into Clientes (nome, cpf, desconto) " + "VALUES('" +
cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() + ")";Statement st =
acesso.con.createStatement();st.executeUpdate(consulta);
 c) String consulta = "INSERT into Clientes (id, nome, cpf, desconto) " + "VALUES(" +
cliente.getId() + ",'" + cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() +
")";Statement st = acesso.con.createStatement();st.executeUpdate(consulta);
 d) ResultSet rs; String consulta = "INSERT into Clientes (nome, cpf, desconto) " +
"VALUES('" + cliente.getNome() +"'," + aluno.getCpf() + "," + aluno.getDesconto() +
")";Statement st = acesso.con.createStatement();rs = st.executeUpdate(consulta);
 e) String consulta = "INSERT into Clientes (id, nome, cpf, desconto) " + "VALUES(" +
cliente.getId() + ",'" + cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() +
")";Statement st = acesso.con.createStatement();st.executeQuery(consulta);
Alternativa marcada:
b) String consulta = "INSERT into Clientes (nome, cpf, desconto) " + "VALUES('" +
cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() + ")";Statement st =
acesso.con.createStatement();st.executeUpdate(consulta);
Justificativa: Resposta correta:String consulta = "INSERT into Clientes (nome, cpf, desconto) " 
 + "VALUES('" + cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() +
")";Statement st = acesso.con.createStatement();st.executeUpdate(consulta);Correta. Como o
campo id é autoincrementado, não devemos realizar a inclusão deste valor, pois o SGBD irá gerá-
lo automaticamente. O método de execução correto para manipulações em bases de dados é o
executeUpdate(), que realiza operações de inclusão, exclusão e alteração.
Distratores:String consulta = "INSERT into Clientes (id, nome, cpf, desconto) " + "VALUES("
+ cliente.getId() + ",'" + cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto()
+ ")";Statement st = acesso.con.createStatement();st.executeUpdate(consulta);Incorreta. Como o
campo id é autoincrementado, não devemos realizar a inclusão deste valor, pois o SGBD irá gerá-
lo automaticamente. O método de execução executeUpdate() está correto, pois é o método usado
 para realizar manipulações em bases de dados para a inclusão.
2,00/ 2,00
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
7 of 8 28/09/2022 22:05
String consulta = "INSERT into Clientes (nome, cpf, desconto) " + "VALUES('" +
cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() + ")";Statement st =
acesso.con.createStatement();st.executeQuery(consulta);Incorreta. Como o campo id é
autoincrementado, a consulta está correta ao não realizar a inclusão deste valor, pois o SGBD irá
gerá-lo automaticamente, mas o método de execução executeQuery() é usado para realizar
consultas de busca na base de dados e não para manipulação, como é o caso da inclusão.
String consulta = "INSERT into Clientes (id, nome, cpf, desconto) " + "VALUES(" +
cliente.getId() + ",'" + cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() +
")";Statement st = acesso.con.createStatement();st.executeQuery(consulta);Incorreta. Como o
campo id é autoincrementado, não devemos realizar a inclusão deste valor, pois o SGBD irá gerá-
lo automaticamente. Além disso, o método de execução executeQuery() é usado para realizar
consultas de busca na base de dados e não para manipulação, como é o caso da inclusão.
ResultSet rs; String consulta = "INSERT into Clientes (nome, cpf, desconto) " + "VALUES('"
+ cliente.getNome() + "'," + aluno.getCpf() + "," + aluno.getDesconto() + ")";Statement st =
acesso.con.createStatement();rs = st.executeUpdate(consulta);Incorreta. Como o campo id é
autoincrementado, a consulta não realiza a inclusão deste valor, pois o SGBD irá gerá-lo
automaticamente. O método de execução executeUpdate() está correto, pois é o método usado
para realizar manipulações em bases de dados. Já a execução da consulta de manipulação retorna
para armazenamento em um RecordSet, o que não deve ser feito, pois o RecordSet é usado para
armazenar resultados de consultas de busca com o método executeQuery().
Ilumno http://ilumno.sgp.starlinetecnologia.com.br/ilumno/schedule/resultcandi...
8 of 8 28/09/2022 22:05

Continue navegando