Avaliação Final
Avaliação Final
Crie um programa como o exemplo abaixo que faça a conexão com um banco de dados MySQL, insira alguns dados e faça uma consulta para exibir os dados inseridos.
Você pode escolher qualquer tipo de dado que não seja o do exemplo (estudantes). A tabela criada deve ter pelo menos 5 colunas (incluindo o ID) e 20 linhas de dados.
Exemplo do Banco:
CREATE DATABASE cedup;
USE cedup;
CREATE TABLE estudantes (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
media DECIMAL(4,2) NOT NULL,
turma VARCHAR(50) NOT NULL
);
Exemplo do código Java:
package com.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Main {
private static final String DB_URL = "jdbc:mysql://localhost:3306/cedup?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
private static final String USER = "root";
private static final String PASS = "root";
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
while (true) {
System.out.println("Digite uma opcao: ");
System.out.println("1 - Listar estudantes");
System.out.println("2 - Cadastrar estudante");
System.out.println("0 - Sair");
System.out.println("Escolha uma opcao: ");
int opcao = leitor.nextInt();
if(opcao == 0) {
System.out.println("Encerrando o programa.");
break;
}
switch (opcao) {
case 1:
listarEstudantes();
break;
case 2:
cadastrarEstudante();
break;
default:
System.out.println("Opcao invalida!");
}
}
}
private static void listarEstudantes() {
String query = "SELECT * FROM estudantes";
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement(query);
ResultSet rs = pstmt.executeQuery()) {
System.out.println("ID | Nome | Email | Media | Turma");
while (rs.next()) {
int id = rs.getInt("id");
String nome = rs.getString("nome");
String email = rs.getString("email");
double media = rs.getDouble("media");
String turma = rs.getString("turma");
System.out.printf("%d | %s | %s | %.2f | %s%n", id, nome, email, media, turma);
}
} catch (SQLException e) {
System.out.println("Erro ao listar estudantes: " + e.getMessage());
}
}
private static void cadastrarEstudante() {
java.util.Scanner scanner = new java.util.Scanner(System.in);
System.out.print("Digite o nome do estudante: ");
String nome = scanner.nextLine();
System.out.print("Digite o email do estudante: ");
String email = scanner.nextLine();
System.out.println("Digite a media do estudante: ");
double media = scanner.nextDouble();
scanner.nextLine(); // Consome o restante do buffer para evitar problemas com o próximo input
System.out.print("Digite a turma do estudante: ");
String turma = scanner.nextLine();
String insertQuery = "INSERT INTO estudantes (nome, email, media, turma) VALUES (?, ?, ?, ?)";
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
PreparedStatement pstmt = conn.prepareStatement(insertQuery)) {
pstmt.setString(1, nome);
pstmt.setString(2, email);
pstmt.setDouble(3, media);
pstmt.setString(4, turma);
int rowsAffected = pstmt.executeUpdate();
if (rowsAffected > 0) {
System.out.println("Estudante cadastrado com sucesso!");
} else {
System.out.println("Falha ao cadastrar estudante.");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}