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.