Skip to content

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();
        }
    }
}