CRUD Java, MySQL e JDBC

Vou criar um guia CRUD (Create, Read, Update, Delete) em Java puro (usando JDBC para conexão com banco de dados). Usaremos o MySQL como exemplo, mas você pode adaptar para outros bancos.


Pré-requisitos

  1. Banco de dados MySQL instalado.
  2. Driver JDBC do MySQL (arquivo mysql-connector-java-X.X.XX.jar).
  3. Java 8 ou superior.

Passo 1: Configurar o Banco de Dados

Crie uma tabela usuarios no MySQL:

<span>CREATE</span> <span>DATABASE</span> <span>crud_java</span><span>;</span>
<span>USE</span> <span>crud_java</span><span>;</span>
<span>CREATE</span> <span>TABLE</span> <span>usuarios</span> <span>(</span>
<span>id</span> <span>INT</span> <span>PRIMARY</span> <span>KEY</span> <span>AUTO_INCREMENT</span><span>,</span>
<span>nome</span> <span>VARCHAR</span><span>(</span><span>50</span><span>)</span> <span>NOT</span> <span>NULL</span><span>,</span>
<span>email</span> <span>VARCHAR</span><span>(</span><span>50</span><span>)</span> <span>NOT</span> <span>NULL</span> <span>UNIQUE</span><span>,</span>
<span>idade</span> <span>INT</span>
<span>);</span>
<span>CREATE</span> <span>DATABASE</span> <span>crud_java</span><span>;</span>
<span>USE</span> <span>crud_java</span><span>;</span>

<span>CREATE</span> <span>TABLE</span> <span>usuarios</span> <span>(</span>
    <span>id</span> <span>INT</span> <span>PRIMARY</span> <span>KEY</span> <span>AUTO_INCREMENT</span><span>,</span>
    <span>nome</span> <span>VARCHAR</span><span>(</span><span>50</span><span>)</span> <span>NOT</span> <span>NULL</span><span>,</span>
    <span>email</span> <span>VARCHAR</span><span>(</span><span>50</span><span>)</span> <span>NOT</span> <span>NULL</span> <span>UNIQUE</span><span>,</span>
    <span>idade</span> <span>INT</span>
<span>);</span>
CREATE DATABASE crud_java; USE crud_java; CREATE TABLE usuarios ( id INT PRIMARY KEY AUTO_INCREMENT, nome VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL UNIQUE, idade INT );

Enter fullscreen mode Exit fullscreen mode


Passo 2: Estrutura do Projeto Java

Crie um projeto Java e adicione o driver JDBC ao classpath (dependência).

src
└── main
└── java
├── ConnectionFactory.java
├── UsuarioDAO.java
└── Main.java
src
└── main
    └── java
        ├── ConnectionFactory.java
        ├── UsuarioDAO.java
        └── Main.java
src └── main └── java ├── ConnectionFactory.java ├── UsuarioDAO.java └── Main.java

Enter fullscreen mode Exit fullscreen mode


Passo 3: Código Java

Classe ConnectionFactory (Conexão com o Banco)

<span>import</span> <span>java.sql.Connection</span><span>;</span>
<span>import</span> <span>java.sql.DriverManager</span><span>;</span>
<span>import</span> <span>java.sql.SQLException</span><span>;</span>
<span>public</span> <span>class</span> <span>ConnectionFactory</span> <span>{</span>
<span>private</span> <span>static</span> <span>final</span> <span>String</span> <span>URL</span> <span>=</span> <span>"jdbc:mysql://localhost:3306/crud_java"</span><span>;</span>
<span>private</span> <span>static</span> <span>final</span> <span>String</span> <span>USER</span> <span>=</span> <span>"root"</span><span>;</span>
<span>private</span> <span>static</span> <span>final</span> <span>String</span> <span>PASSWORD</span> <span>=</span> <span>"sua_senha"</span><span>;</span>
<span>public</span> <span>static</span> <span>Connection</span> <span>getConnection</span><span>()</span> <span>{</span>
<span>try</span> <span>{</span>
<span>return</span> <span>DriverManager</span><span>.</span><span>getConnection</span><span>(</span><span>URL</span><span>,</span> <span>USER</span><span>,</span> <span>PASSWORD</span><span>);</span>
<span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
<span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao conectar ao banco de dados"</span><span>,</span> <span>e</span><span>);</span>
<span>}</span>
<span>}</span>
<span>}</span>
<span>import</span> <span>java.sql.Connection</span><span>;</span>
<span>import</span> <span>java.sql.DriverManager</span><span>;</span>
<span>import</span> <span>java.sql.SQLException</span><span>;</span>

<span>public</span> <span>class</span> <span>ConnectionFactory</span> <span>{</span>
    <span>private</span> <span>static</span> <span>final</span> <span>String</span> <span>URL</span> <span>=</span> <span>"jdbc:mysql://localhost:3306/crud_java"</span><span>;</span>
    <span>private</span> <span>static</span> <span>final</span> <span>String</span> <span>USER</span> <span>=</span> <span>"root"</span><span>;</span>
    <span>private</span> <span>static</span> <span>final</span> <span>String</span> <span>PASSWORD</span> <span>=</span> <span>"sua_senha"</span><span>;</span>

    <span>public</span> <span>static</span> <span>Connection</span> <span>getConnection</span><span>()</span> <span>{</span>
        <span>try</span> <span>{</span>
            <span>return</span> <span>DriverManager</span><span>.</span><span>getConnection</span><span>(</span><span>URL</span><span>,</span> <span>USER</span><span>,</span> <span>PASSWORD</span><span>);</span>
        <span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
            <span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao conectar ao banco de dados"</span><span>,</span> <span>e</span><span>);</span>
        <span>}</span>
    <span>}</span>
<span>}</span>
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionFactory { private static final String URL = "jdbc:mysql://localhost:3306/crud_java"; private static final String USER = "root"; private static final String PASSWORD = "sua_senha"; public static Connection getConnection() { try { return DriverManager.getConnection(URL, USER, PASSWORD); } catch (SQLException e) { throw new RuntimeException("Erro ao conectar ao banco de dados", e); } } }

Enter fullscreen mode Exit fullscreen mode

Classe UsuarioDAO (Operações CRUD)

<span>import</span> <span>java.sql.Connection</span><span>;</span>
<span>import</span> <span>java.sql.PreparedStatement</span><span>;</span>
<span>import</span> <span>java.sql.ResultSet</span><span>;</span>
<span>import</span> <span>java.sql.SQLException</span><span>;</span>
<span>import</span> <span>java.util.ArrayList</span><span>;</span>
<span>import</span> <span>java.util.List</span><span>;</span>
<span>public</span> <span>class</span> <span>UsuarioDAO</span> <span>{</span>
<span>// CREATE</span>
<span>public</span> <span>void</span> <span>create</span><span>(</span><span>Usuario</span> <span>usuario</span><span>)</span> <span>{</span>
<span>String</span> <span>sql</span> <span>=</span> <span>"INSERT INTO usuarios (nome, email, idade) VALUES (?, ?, ?)"</span><span>;</span>
<span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
<span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>))</span> <span>{</span>
<span>stmt</span><span>.</span><span>setString</span><span>(</span><span>1</span><span>,</span> <span>usuario</span><span>.</span><span>getNome</span><span>());</span>
<span>stmt</span><span>.</span><span>setString</span><span>(</span><span>2</span><span>,</span> <span>usuario</span><span>.</span><span>getEmail</span><span>());</span>
<span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>3</span><span>,</span> <span>usuario</span><span>.</span><span>getIdade</span><span>());</span>
<span>stmt</span><span>.</span><span>executeUpdate</span><span>();</span>
<span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
<span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao criar usuário"</span><span>,</span> <span>e</span><span>);</span>
<span>}</span>
<span>}</span>
<span>// READ</span>
<span>public</span> <span>List</span><span><</span><span>Usuario</span><span>></span> <span>read</span><span>()</span> <span>{</span>
<span>String</span> <span>sql</span> <span>=</span> <span>"SELECT * FROM usuarios"</span><span>;</span>
<span>List</span><span><</span><span>Usuario</span><span>></span> <span>usuarios</span> <span>=</span> <span>new</span> <span>ArrayList</span><span><>();</span>
<span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
<span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>);</span>
<span>ResultSet</span> <span>rs</span> <span>=</span> <span>stmt</span><span>.</span><span>executeQuery</span><span>())</span> <span>{</span>
<span>while</span> <span>(</span><span>rs</span><span>.</span><span>next</span><span>())</span> <span>{</span>
<span>Usuario</span> <span>usuario</span> <span>=</span> <span>new</span> <span>Usuario</span><span>(</span>
<span>rs</span><span>.</span><span>getInt</span><span>(</span><span>"id"</span><span>),</span>
<span>rs</span><span>.</span><span>getString</span><span>(</span><span>"nome"</span><span>),</span>
<span>rs</span><span>.</span><span>getString</span><span>(</span><span>"email"</span><span>),</span>
<span>rs</span><span>.</span><span>getInt</span><span>(</span><span>"idade"</span><span>)</span>
<span>);</span>
<span>usuarios</span><span>.</span><span>add</span><span>(</span><span>usuario</span><span>);</span>
<span>}</span>
<span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
<span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao listar usuários"</span><span>,</span> <span>e</span><span>);</span>
<span>}</span>
<span>return</span> <span>usuarios</span><span>;</span>
<span>}</span>
<span>// UPDATE</span>
<span>public</span> <span>void</span> <span>update</span><span>(</span><span>Usuario</span> <span>usuario</span><span>)</span> <span>{</span>
<span>String</span> <span>sql</span> <span>=</span> <span>"UPDATE usuarios SET nome = ?, email = ?, idade = ? WHERE id = ?"</span><span>;</span>
<span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
<span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>))</span> <span>{</span>
<span>stmt</span><span>.</span><span>setString</span><span>(</span><span>1</span><span>,</span> <span>usuario</span><span>.</span><span>getNome</span><span>());</span>
<span>stmt</span><span>.</span><span>setString</span><span>(</span><span>2</span><span>,</span> <span>usuario</span><span>.</span><span>getEmail</span><span>());</span>
<span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>3</span><span>,</span> <span>usuario</span><span>.</span><span>getIdade</span><span>());</span>
<span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>4</span><span>,</span> <span>usuario</span><span>.</span><span>getId</span><span>());</span>
<span>stmt</span><span>.</span><span>executeUpdate</span><span>();</span>
<span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
<span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao atualizar usuário"</span><span>,</span> <span>e</span><span>);</span>
<span>}</span>
<span>}</span>
<span>// DELETE</span>
<span>public</span> <span>void</span> <span>delete</span><span>(</span><span>int</span> <span>id</span><span>)</span> <span>{</span>
<span>String</span> <span>sql</span> <span>=</span> <span>"DELETE FROM usuarios WHERE id = ?"</span><span>;</span>
<span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
<span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>))</span> <span>{</span>
<span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>1</span><span>,</span> <span>id</span><span>);</span>
<span>stmt</span><span>.</span><span>executeUpdate</span><span>();</span>
<span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
<span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao deletar usuário"</span><span>,</span> <span>e</span><span>);</span>
<span>}</span>
<span>}</span>
<span>}</span>
<span>import</span> <span>java.sql.Connection</span><span>;</span>
<span>import</span> <span>java.sql.PreparedStatement</span><span>;</span>
<span>import</span> <span>java.sql.ResultSet</span><span>;</span>
<span>import</span> <span>java.sql.SQLException</span><span>;</span>
<span>import</span> <span>java.util.ArrayList</span><span>;</span>
<span>import</span> <span>java.util.List</span><span>;</span>

<span>public</span> <span>class</span> <span>UsuarioDAO</span> <span>{</span>

    <span>// CREATE</span>
    <span>public</span> <span>void</span> <span>create</span><span>(</span><span>Usuario</span> <span>usuario</span><span>)</span> <span>{</span>
        <span>String</span> <span>sql</span> <span>=</span> <span>"INSERT INTO usuarios (nome, email, idade) VALUES (?, ?, ?)"</span><span>;</span>
        <span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
             <span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>))</span> <span>{</span>

            <span>stmt</span><span>.</span><span>setString</span><span>(</span><span>1</span><span>,</span> <span>usuario</span><span>.</span><span>getNome</span><span>());</span>
            <span>stmt</span><span>.</span><span>setString</span><span>(</span><span>2</span><span>,</span> <span>usuario</span><span>.</span><span>getEmail</span><span>());</span>
            <span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>3</span><span>,</span> <span>usuario</span><span>.</span><span>getIdade</span><span>());</span>
            <span>stmt</span><span>.</span><span>executeUpdate</span><span>();</span>

        <span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
            <span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao criar usuário"</span><span>,</span> <span>e</span><span>);</span>
        <span>}</span>
    <span>}</span>

    <span>// READ</span>
    <span>public</span> <span>List</span><span><</span><span>Usuario</span><span>></span> <span>read</span><span>()</span> <span>{</span>
        <span>String</span> <span>sql</span> <span>=</span> <span>"SELECT * FROM usuarios"</span><span>;</span>
        <span>List</span><span><</span><span>Usuario</span><span>></span> <span>usuarios</span> <span>=</span> <span>new</span> <span>ArrayList</span><span><>();</span>

        <span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
             <span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>);</span>
             <span>ResultSet</span> <span>rs</span> <span>=</span> <span>stmt</span><span>.</span><span>executeQuery</span><span>())</span> <span>{</span>

            <span>while</span> <span>(</span><span>rs</span><span>.</span><span>next</span><span>())</span> <span>{</span>
                <span>Usuario</span> <span>usuario</span> <span>=</span> <span>new</span> <span>Usuario</span><span>(</span>
                    <span>rs</span><span>.</span><span>getInt</span><span>(</span><span>"id"</span><span>),</span>
                    <span>rs</span><span>.</span><span>getString</span><span>(</span><span>"nome"</span><span>),</span>
                    <span>rs</span><span>.</span><span>getString</span><span>(</span><span>"email"</span><span>),</span>
                    <span>rs</span><span>.</span><span>getInt</span><span>(</span><span>"idade"</span><span>)</span>
                <span>);</span>
                <span>usuarios</span><span>.</span><span>add</span><span>(</span><span>usuario</span><span>);</span>
            <span>}</span>

        <span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
            <span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao listar usuários"</span><span>,</span> <span>e</span><span>);</span>
        <span>}</span>
        <span>return</span> <span>usuarios</span><span>;</span>
    <span>}</span>

    <span>// UPDATE</span>
    <span>public</span> <span>void</span> <span>update</span><span>(</span><span>Usuario</span> <span>usuario</span><span>)</span> <span>{</span>
        <span>String</span> <span>sql</span> <span>=</span> <span>"UPDATE usuarios SET nome = ?, email = ?, idade = ? WHERE id = ?"</span><span>;</span>
        <span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
             <span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>))</span> <span>{</span>

            <span>stmt</span><span>.</span><span>setString</span><span>(</span><span>1</span><span>,</span> <span>usuario</span><span>.</span><span>getNome</span><span>());</span>
            <span>stmt</span><span>.</span><span>setString</span><span>(</span><span>2</span><span>,</span> <span>usuario</span><span>.</span><span>getEmail</span><span>());</span>
            <span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>3</span><span>,</span> <span>usuario</span><span>.</span><span>getIdade</span><span>());</span>
            <span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>4</span><span>,</span> <span>usuario</span><span>.</span><span>getId</span><span>());</span>
            <span>stmt</span><span>.</span><span>executeUpdate</span><span>();</span>

        <span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
            <span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao atualizar usuário"</span><span>,</span> <span>e</span><span>);</span>
        <span>}</span>
    <span>}</span>

    <span>// DELETE</span>
    <span>public</span> <span>void</span> <span>delete</span><span>(</span><span>int</span> <span>id</span><span>)</span> <span>{</span>
        <span>String</span> <span>sql</span> <span>=</span> <span>"DELETE FROM usuarios WHERE id = ?"</span><span>;</span>
        <span>try</span> <span>(</span><span>Connection</span> <span>conn</span> <span>=</span> <span>ConnectionFactory</span><span>.</span><span>getConnection</span><span>();</span>
             <span>PreparedStatement</span> <span>stmt</span> <span>=</span> <span>conn</span><span>.</span><span>prepareStatement</span><span>(</span><span>sql</span><span>))</span> <span>{</span>

            <span>stmt</span><span>.</span><span>setInt</span><span>(</span><span>1</span><span>,</span> <span>id</span><span>);</span>
            <span>stmt</span><span>.</span><span>executeUpdate</span><span>();</span>

        <span>}</span> <span>catch</span> <span>(</span><span>SQLException</span> <span>e</span><span>)</span> <span>{</span>
            <span>throw</span> <span>new</span> <span>RuntimeException</span><span>(</span><span>"Erro ao deletar usuário"</span><span>,</span> <span>e</span><span>);</span>
        <span>}</span>
    <span>}</span>
<span>}</span>
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class UsuarioDAO { // CREATE public void create(Usuario usuario) { String sql = "INSERT INTO usuarios (nome, email, idade) VALUES (?, ?, ?)"; try (Connection conn = ConnectionFactory.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setString(1, usuario.getNome()); stmt.setString(2, usuario.getEmail()); stmt.setInt(3, usuario.getIdade()); stmt.executeUpdate(); } catch (SQLException e) { throw new RuntimeException("Erro ao criar usuário", e); } } // READ public List<Usuario> read() { String sql = "SELECT * FROM usuarios"; List<Usuario> usuarios = new ArrayList<>(); try (Connection conn = ConnectionFactory.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql); ResultSet rs = stmt.executeQuery()) { while (rs.next()) { Usuario usuario = new Usuario( rs.getInt("id"), rs.getString("nome"), rs.getString("email"), rs.getInt("idade") ); usuarios.add(usuario); } } catch (SQLException e) { throw new RuntimeException("Erro ao listar usuários", e); } return usuarios; } // UPDATE public void update(Usuario usuario) { String sql = "UPDATE usuarios SET nome = ?, email = ?, idade = ? WHERE id = ?"; try (Connection conn = ConnectionFactory.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setString(1, usuario.getNome()); stmt.setString(2, usuario.getEmail()); stmt.setInt(3, usuario.getIdade()); stmt.setInt(4, usuario.getId()); stmt.executeUpdate(); } catch (SQLException e) { throw new RuntimeException("Erro ao atualizar usuário", e); } } // DELETE public void delete(int id) { String sql = "DELETE FROM usuarios WHERE id = ?"; try (Connection conn = ConnectionFactory.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setInt(1, id); stmt.executeUpdate(); } catch (SQLException e) { throw new RuntimeException("Erro ao deletar usuário", e); } } }

Enter fullscreen mode Exit fullscreen mode

Classe Usuario (Modelo)

<span>public</span> <span>class</span> <span>Usuario</span> <span>{</span>
<span>private</span> <span>int</span> <span>id</span><span>;</span>
<span>private</span> <span>String</span> <span>nome</span><span>;</span>
<span>private</span> <span>String</span> <span>email</span><span>;</span>
<span>private</span> <span>int</span> <span>idade</span><span>;</span>
<span>// Construtor, getters e setters</span>
<span>public</span> <span>Usuario</span><span>(</span><span>int</span> <span>id</span><span>,</span> <span>String</span> <span>nome</span><span>,</span> <span>String</span> <span>email</span><span>,</span> <span>int</span> <span>idade</span><span>)</span> <span>{</span>
<span>this</span><span>.</span><span>id</span> <span>=</span> <span>id</span><span>;</span>
<span>this</span><span>.</span><span>nome</span> <span>=</span> <span>nome</span><span>;</span>
<span>this</span><span>.</span><span>email</span> <span>=</span> <span>email</span><span>;</span>
<span>this</span><span>.</span><span>idade</span> <span>=</span> <span>idade</span><span>;</span>
<span>}</span>
<span>// Getters e Setters</span>
<span>public</span> <span>int</span> <span>getId</span><span>()</span> <span>{</span> <span>return</span> <span>id</span><span>;</span> <span>}</span>
<span>public</span> <span>String</span> <span>getNome</span><span>()</span> <span>{</span> <span>return</span> <span>nome</span><span>;</span> <span>}</span>
<span>public</span> <span>String</span> <span>getEmail</span><span>()</span> <span>{</span> <span>return</span> <span>email</span><span>;</span> <span>}</span>
<span>public</span> <span>int</span> <span>getIdade</span><span>()</span> <span>{</span> <span>return</span> <span>idade</span><span>;</span> <span>}</span>
<span>}</span>
<span>public</span> <span>class</span> <span>Usuario</span> <span>{</span>
    <span>private</span> <span>int</span> <span>id</span><span>;</span>
    <span>private</span> <span>String</span> <span>nome</span><span>;</span>
    <span>private</span> <span>String</span> <span>email</span><span>;</span>
    <span>private</span> <span>int</span> <span>idade</span><span>;</span>

    <span>// Construtor, getters e setters</span>
    <span>public</span> <span>Usuario</span><span>(</span><span>int</span> <span>id</span><span>,</span> <span>String</span> <span>nome</span><span>,</span> <span>String</span> <span>email</span><span>,</span> <span>int</span> <span>idade</span><span>)</span> <span>{</span>
        <span>this</span><span>.</span><span>id</span> <span>=</span> <span>id</span><span>;</span>
        <span>this</span><span>.</span><span>nome</span> <span>=</span> <span>nome</span><span>;</span>
        <span>this</span><span>.</span><span>email</span> <span>=</span> <span>email</span><span>;</span>
        <span>this</span><span>.</span><span>idade</span> <span>=</span> <span>idade</span><span>;</span>
    <span>}</span>

    <span>// Getters e Setters</span>
    <span>public</span> <span>int</span> <span>getId</span><span>()</span> <span>{</span> <span>return</span> <span>id</span><span>;</span> <span>}</span>
    <span>public</span> <span>String</span> <span>getNome</span><span>()</span> <span>{</span> <span>return</span> <span>nome</span><span>;</span> <span>}</span>
    <span>public</span> <span>String</span> <span>getEmail</span><span>()</span> <span>{</span> <span>return</span> <span>email</span><span>;</span> <span>}</span>
    <span>public</span> <span>int</span> <span>getIdade</span><span>()</span> <span>{</span> <span>return</span> <span>idade</span><span>;</span> <span>}</span>
<span>}</span>
public class Usuario { private int id; private String nome; private String email; private int idade; // Construtor, getters e setters public Usuario(int id, String nome, String email, int idade) { this.id = id; this.nome = nome; this.email = email; this.idade = idade; } // Getters e Setters public int getId() { return id; } public String getNome() { return nome; } public String getEmail() { return email; } public int getIdade() { return idade; } }

Enter fullscreen mode Exit fullscreen mode

Classe Main (Teste)

<span>import</span> <span>java.util.List</span><span>;</span>
<span>public</span> <span>class</span> <span>Main</span> <span>{</span>
<span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span>
<span>UsuarioDAO</span> <span>usuarioDAO</span> <span>=</span> <span>new</span> <span>UsuarioDAO</span><span>();</span>
<span>// CREATE</span>
<span>Usuario</span> <span>novoUsuario</span> <span>=</span> <span>new</span> <span>Usuario</span><span>(</span><span>0</span><span>,</span> <span>"João Silva"</span><span>,</span> <span>"joao@email.com"</span><span>,</span> <span>30</span><span>);</span>
<span>usuarioDAO</span><span>.</span><span>create</span><span>(</span><span>novoUsuario</span><span>);</span>
<span>// READ</span>
<span>List</span><span><</span><span>Usuario</span><span>></span> <span>usuarios</span> <span>=</span> <span>usuarioDAO</span><span>.</span><span>read</span><span>();</span>
<span>for</span> <span>(</span><span>Usuario</span> <span>u</span> <span>:</span> <span>usuarios</span><span>)</span> <span>{</span>
<span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>u</span><span>.</span><span>getId</span><span>()</span> <span>+</span> <span>" - "</span> <span>+</span> <span>u</span><span>.</span><span>getNome</span><span>());</span>
<span>}</span>
<span>// UPDATE</span>
<span>Usuario</span> <span>usuarioAtualizado</span> <span>=</span> <span>new</span> <span>Usuario</span><span>(</span><span>1</span><span>,</span> <span>"João Silva Atualizado"</span><span>,</span> <span>"joao.novo@email.com"</span><span>,</span> <span>35</span><span>);</span>
<span>usuarioDAO</span><span>.</span><span>update</span><span>(</span><span>usuarioAtualizado</span><span>);</span>
<span>// DELETE</span>
<span>usuarioDAO</span><span>.</span><span>delete</span><span>(</span><span>1</span><span>);</span>
<span>}</span>
<span>}</span>
<span>import</span> <span>java.util.List</span><span>;</span>

<span>public</span> <span>class</span> <span>Main</span> <span>{</span>
    <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span>
        <span>UsuarioDAO</span> <span>usuarioDAO</span> <span>=</span> <span>new</span> <span>UsuarioDAO</span><span>();</span>

        <span>// CREATE</span>
        <span>Usuario</span> <span>novoUsuario</span> <span>=</span> <span>new</span> <span>Usuario</span><span>(</span><span>0</span><span>,</span> <span>"João Silva"</span><span>,</span> <span>"joao@email.com"</span><span>,</span> <span>30</span><span>);</span>
        <span>usuarioDAO</span><span>.</span><span>create</span><span>(</span><span>novoUsuario</span><span>);</span>

        <span>// READ</span>
        <span>List</span><span><</span><span>Usuario</span><span>></span> <span>usuarios</span> <span>=</span> <span>usuarioDAO</span><span>.</span><span>read</span><span>();</span>
        <span>for</span> <span>(</span><span>Usuario</span> <span>u</span> <span>:</span> <span>usuarios</span><span>)</span> <span>{</span>
            <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>u</span><span>.</span><span>getId</span><span>()</span> <span>+</span> <span>" - "</span> <span>+</span> <span>u</span><span>.</span><span>getNome</span><span>());</span>
        <span>}</span>

        <span>// UPDATE</span>
        <span>Usuario</span> <span>usuarioAtualizado</span> <span>=</span> <span>new</span> <span>Usuario</span><span>(</span><span>1</span><span>,</span> <span>"João Silva Atualizado"</span><span>,</span> <span>"joao.novo@email.com"</span><span>,</span> <span>35</span><span>);</span>
        <span>usuarioDAO</span><span>.</span><span>update</span><span>(</span><span>usuarioAtualizado</span><span>);</span>

        <span>// DELETE</span>
        <span>usuarioDAO</span><span>.</span><span>delete</span><span>(</span><span>1</span><span>);</span>
    <span>}</span>
<span>}</span>
import java.util.List; public class Main { public static void main(String[] args) { UsuarioDAO usuarioDAO = new UsuarioDAO(); // CREATE Usuario novoUsuario = new Usuario(0, "João Silva", "joao@email.com", 30); usuarioDAO.create(novoUsuario); // READ List<Usuario> usuarios = usuarioDAO.read(); for (Usuario u : usuarios) { System.out.println(u.getId() + " - " + u.getNome()); } // UPDATE Usuario usuarioAtualizado = new Usuario(1, "João Silva Atualizado", "joao.novo@email.com", 35); usuarioDAO.update(usuarioAtualizado); // DELETE usuarioDAO.delete(1); } }

Enter fullscreen mode Exit fullscreen mode


Passo 4: Execução

  1. Adicione o driver JDBC ao classpath (no Eclipse: Botão direito no projeto > Build Path > Configure Build Path > Libraries > Add JARs).
  2. Execute a classe Main.

Considerações

  1. Tratamento de Exceções: Use try-with-resources para garantir que conexões sejam fechadas automaticamente.
  2. Segurança: Use PreparedStatement para evitar SQL injection.
  3. Transações: Para operações críticas, adicione controle transacional com commit() e rollback().

Este é um exemplo básico. Para projetos reais, considere usar:

  • Frameworks como Hibernate (JPA) ou Spring JDBC.
  • Pool de conexões (ex: HikariCP).
  • Tratamento mais robusto de exceções.

原文链接:CRUD Java, MySQL e JDBC

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
No matter how you feel, get up, dress up and fight for your dreams.
无论你现在感觉如何,请起床、穿好衣服然后为你的梦想而奋斗
评论 抢沙发

请登录后发表评论

    暂无评论内容