Questão FC373642
Considere o fragmento de código abaixo em uma classe de acesso a dados que utiliza JDBC com objetivo de conectar a aplicação Java a um Banco de Dados PostgreSQL denominado bdaction
Plataforma Java EE
FCC · 2018
Considere o fragmento de código abaixo em uma classe de acesso a dados que utiliza JDBC com objetivo de conectar a aplicação Java a um Banco de Dados PostgreSQL denominado bdaction.
Class.forName("org.postgresql.Driver");
Connection connection = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/a0041",
"bdaction", "a45Ab");
Statement statement = connection.createStatement();
Nesse fragmento,
- a falta da classe Driver ocasionará uma exceção do tipo SQLException.
- a classe Statement deve ser trocada por EntityManager, que permite acesso a métodos para execução de comando SQL.
- como o Banco de Dados ao qual se deseja conectar é o bdaction, ocorrerá uma exceção do tipo SQLException.
- a porta de comunicação com o PostgreSQL deve ser mudada de 5432 para a porta padrão, que é 336.
- não é necessário tratamento de exceção, pois isso é feito automaticamente pela API JDBC.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
O fragmento tenta conectar ao PostgreSQL com DriverManager.getConnection apontando a URL de conexão "jdbc:postgresql://127.0.0.1:5432/a0041" enquanto o banco desejado é bdaction. Como o nome do banco na URL difere do esperado, o servidor não localizará/autorizará a instância solicitada e a tentativa de conexão falhará.
Essa falha se manifesta em tempo de execução como uma SQLException, lançada durante a chamada a getConnection. O método lança essa exceção sempre que a conexão não é estabelecida (nome de banco errado, credenciais inválidas ou serviço inacessível), de modo que a instrução seguinte (createStatement) não será alcançada.
Para resolver, alinhe o nome do banco na URL com bdaction (por exemplo "jdbc:postgresql://127.0.0.1:5432/bdaction") para permitir a conexão sem a exceção.
Conteúdo do catálogo FC Concursos · Atualizado em