Estudo de caso em BD - primeira aplicação

tenho uma aplicação simples que manipula dados.

Não reparem, pois é meio primeiro exemplo com banco de dados em java.

Como vocês notaram em alguns tópicos anteriores que eu criei, eu mal resolvi o problema de conexão, por isso não reparem!

  • PS.: para este aplicativo é preciso criar um banco chamado
    aula04 e uma tabela chamada Aluno com as seguintes: id e nome

Segue o código:

[code] /* para este aplicativo é preciso criar um banco chamado

  • aula04 e uma tabela chamada Aluno com os seguintes campos:
  • id e nome
    */

import java.awt.Frame;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.List;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JOptionPane;

public class Aula04 extends Frame implements WindowListener{

//atributos necessários para a interação com o banco:
private Connection conn;
private PreparedStatement pstmt;
private Statement stmt;
private ResultSet rs;

//sete métodos:
public void open() {
try {
Class.forName(“org.gjt.mm.mysql.Driver”);
conn = DriverManager.getConnection(“jdbc:mysql://localhost/aula04?autoReconnect=true”, “root”, “2017”);
// conn = DriverManager.getConnection(“jdbc:mysql://localhost/aula04?user=root&password=2017”);
} catch(ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException ex) {
ex.printStackTrace();
}
}

public void close() {
try {
if (stmt != null)
stmt.close();
conn.close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, “O banco de dados não fechou!”);
//e.printStackTrace();
}
}

public void inserir() {
try {
//abrindo a conexão com o banco:
open();

//instanciando o objeto statement (stmt) :
       stmt = conn.createStatement();

//executando uma instrução SQL:
stmt.executeUpdate(“INSERT INTO ALUNO VALUES (1, ‘Pedro da Silva’)”);
//fechando a conexão com o banco:
close();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, “Não foi possível inserir dados no banco!”,
“Erro”, JOptionPane.ERROR_MESSAGE);
//e.printStackTrace();
}
}

public void alterar() {
try {
//abrindo a conexão com o banco:
open();

//instanciando o objeto preparedStatement (pstmt) :
       pstmt = conn.prepareStatement("UPDATE ALUNO SET NOME = ? Where id - 1");
//setando o valor ao parâmetro:
       pstmt.setString(1, "MARIA RITA");
       
//fechando a conexão com o banco:
       pstmt.execute();
       close();
    } catch (SQLException e) {
//fechando a conexão com o banco:
        close();
        JOptionPane.showMessageDialog(null, "Erro ao fechar o banco!",
        "Erro", JOptionPane.ERROR_MESSAGE);
        //e.printStackTrace(); 
    }
}
    
    
 public ResultSet buscarAlunos() {
     try {
         open();
         stmt = conn.createStatement();
         rs = stmt.executeQuery("SELECT id, nome FROM ALUNO");
         return rs;
        } catch (SQLException e) {
            close();
            e.printStackTrace();
        }
     return null;
    }
    
    
 public void imprimirAlunos() throws SQLException {
     
     List listAlunos = new List();
     
     Aula04 aula = new Aula04();
     aula.rs = aula.buscarAlunos();
     while (aula.rs.next())
     listAlunos.add("id: " + aula.rs.getInt("id") + "   -   " + 
     "  Nome: " + aula.rs.getString("nome"));
     
     Frame janela = new Frame("Exemplo de banco de Dados");
     janela.setLocation(300,100);
     janela.setSize(400,300);
     
     janela.add(listAlunos);
     janela.setResizable(false);
     janela.setVisible(true);
     
     janela.addWindowListener(this);
     
    }
    
    public static void main(String[] args) {
        Aula04 aula = new Aula04();
        aula.inserir();
        aula.alterar();
        aula.rs = aula.buscarAlunos();
        try {
            aula.imprimirAlunos();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

//método listener do botão “x” de fechar a tela:
public void windowClosing(WindowEvent e) {
System.exit(1);
}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}

}

[/code]

Tá na mão!

Espero encontrar aqui neste fórum, alguns exemplos de como um usuário faz
para inserir dados em um banco através de tabelas ou formulários e depois
buscá-los de diversas maneiras (todos de uma vez, por data, por nome, etc)…

Mas tudo isso utilizando uma aplicação visual, é claro. (uma tabela, quem sabe)…