Quando utilizado o JDBC para acessar o banco de dados, trabalhamos apenas com interfaces. Connection, Statement, PreparedStatement e ResultSet são interfaces. O uso de interfaces liberta o desenvolvedor de ficar amarrado a um banco de dados específico. Caso o projeto não queira mais utilizar o JavaDB e agora utilizará MySQL, não será necessário alterar o código-fonte, pois não utilizamos as classes específicas de um driver, somente a API do JDBC. Observe o código abaixo e assinale a alternativa correta.
public class Ex8{
static final String URL = "jdbc:mysql://localhost:3306/test","root","");
static final String USUARIO = "ead";
static final String SENHA = "ead";
static final String SQL_INSERT = "INSERT INTO pessoa(id,nome) VALUES (?,?)";
static final String SQL_SELECT = "SELECT * FROM pessoa";
public static void main(String[] args) throws Exception {
Connection conexao = DriverManager.getConnection (URL, USUARIO, SENHA);
PreparedStatement preparada = conexao.prepareStatement(SQL_INSERT);
preparada.setInt(1, 1);
preparada.setString (2, "Lucas");
preparada.executeUpdate();
preparada.setInt(1,2);
preparada.setString (2, "Ronaldo");
preparada.executeUpdate();
Statement consulta = consulta.createStatement();
ResultSet resultados = consulta.executeQuery(SQL_SELECT);
while (resultados.next()){
System.out.println(resultados.getString("nome"));
}
}
}
Respostas:
O programa cadastra duas pessoas e exibe o nome das duas na tela.
O programa cadastra duas pessoas e exibe o nome somente da segunda. Isso acontece, pois o método "resultados.next" é executado antes da impressão, pulando do primeiro resultado para o segundo.
Ocorrerá um erro, pois no método "setInt", o primeiro parâmetro é o índice do parâmetro. Foi utilizado 1, mas o correto era 0.
Ocorrerá um erro, pois depois de chamar o "executeUpdate" pela primeira vez, não poderia ser reutilizada a variável "preparada".
Ocorrerá um erro, pois na SQL_INSERT tem o símbolo "?" que é inválido.
Respostas
respondido por:
5
O programa cadastra duas pessoas e exibe o nome das duas na tela.
eversonruggieri:
Não concordo com a resposta. Acredito que a correta seja essa:Ocorrerá um erro, pois depois de chamar o "executeUpdate" pela primeira vez, não poderia ser reutilizada a variável "preparada".
Perguntas similares
7 anos atrás
7 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás