Operações CRUD com Statement JDBC

Exemplo de Inserção


Connection conexao = JdbcUtils.obterConexao();
Statement comando = conexao.createStatement();
String sql = "INSERT INTO produtos (codigo, descricao, valor) VALUES (30, 'Câmera', 899.90)";
int registrosAfetados = comando.executeUpdate(sql);
if (registrosAfetados > 0) {
    System.out.println("Registro inserido com sucesso!");
}

Exemplo de Exclusão


Statement comando = conexao.createStatement();
String sql = "DELETE FROM produtos WHERE codigo = 30";
int registrosAfetados = comando.executeUpdate(sql);
if (registrosAfetados > 0) {
    System.out.println("Exclusão realizada com sucesso!");
}

Exemplo de Atualização


Statement comando = conexao.createStatement();
String sql = "UPDATE produtos SET valor = 799.90 WHERE codigo = 30";
int registrosAfetados = comando.executeUpdate(sql);
if (registrosAfetados > 0) {
    System.out.println("Atualização concluída!");
}

Exemplo de Consulta


Statement comando = conexao.createStatement();
String sql = "SELECT descricao, valor FROM produtos WHERE valor > 500";
ResultSet resultados = comando.executeQuery(sql);
while (resultados.next()) {
    String descricao = resultados.getString("descricao");
    double valor = resultados.getDouble("valor");
    System.out.println(descricao + " - R$ " + valor);
}

Implementação com Utilitário

Classe de gerenciamento de recursos:


// db.properties
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/sistema?useSSL=false&allowPublicKeyRetrieval=true
usuario=app_user
senha=secure_pass123

// JdbcUtils.java
public class JdbcUtils {
    private static String driver;
    private static String url;
    private static String usuario;
    private static String senha;

    static {
        try {
            Properties props = new Properties();
            InputStream config = JdbcUtils.class.getResourceAsStream("/db.properties");
            props.load(config);
            driver = props.getProperty("driver");
            url = props.getProperty("url");
            usuario = props.getProperty("usuario");
            senha = props.getProperty("senha");
            Class.forName(driver);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static Connection obterConexao() throws SQLException {
        return DriverManager.getConnection(url, usuario, senha);
    }

    public static void fecharRecursos(Connection conn, Statement stmt, ResultSet rs) {
        try {
            if (rs != null) rs.close();
            if (stmt != null) stmt.close();
            if (conn != null) conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Servlet para operações de banco:


public class ManipuladorProdutos extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
        Connection conexao = null;
        Statement comando = null;
        try {
            conexao = JdbcUtils.obterConexao();
            comando = conexao.createStatement();
            String sql = "INSERT INTO produtos (codigo, descricao, valor) VALUES (45, 'Monitor', 1200.00)";
            int registros = comando.executeUpdate(sql);
            if (registros > 0) {
                System.out.println("Inserção bem-sucedida");
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            JdbcUtils.fecharRecursos(conexao, comando, null);
        }
    }
}

Strings vs Null em Java

A atribuição String a = "" cria um objeto string vazio válido, enquanto String a = null indica que a referência não aponta para nenhum objeto. Operações em strings vazias são seguras, mas acessar métodos em null gera NullPointerException. Para verificar segurança antes de usar equals(), sempre confira a != null primeiro.

Tags: jdbc MySQL java-servlet database-connection sql-queries

Publicado em 10-1 22:02