JDBC en java

Este es un churro resumen de las cuatro cosas básicas que se hacen con el JDBC, en concreto:

-Las operaciones CRUD (en jdbc el select de una forma el resto de otra)

-El tema de las PreparedStatement, que es la forma correcta de hacer las cosas.

-El tema de sacar el último campo clave generado. En el caso de autonuméricos nos interesa saberlo en muchas ocasiones y la cosa tiene su aquel en java.

 

import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
 
 
/**
 * churro con las cosas básicas de JDBC
 * @author pello_altadill
 *
 */
public class Main {
 
 
/**
* @param args
*/
public static void main(String[] args) {
  try {
 Class.forName("com.mysql.jdbc.Driver");
 Connection conn =
 DriverManager.getConnection("jdbc:mysql://localhost/erp","root","");
 Statement stat = conn.createStatement();
 ResultSet resultset = stat.executeQuery("select * from customer;");
 
   while (resultset.next()) {
     System.out.println("id = " + resultset.getString("id"));
     System.out.println("name = " + resultset.getString("name"));
   }
   
 // INSERT
 String insertQuery = 
 "insert into customer (name,address) values('Sauron','Mordor')";
 int result = stat.executeUpdate(insertQuery);
 
 // INSERT RECUPERANDO LA ÚLTIMA CLAVE
 insertQuery = "insert into customer (name,address) values('Melkor','Angband')";
 
 result = stat.executeUpdate(insertQuery,Statement.RETURN_GENERATED_KEYS);
   
   // Sacamos la clave
   ResultSet rs = stat.getGeneratedKeys();
   if (rs.next()){
       result=rs.getInt(1);
   }
 
 // DELETE
 int id = 4;
 String deleteQuery = "delete from customer where id=" + id;
 result = stat.executeUpdate(deleteQuery);
 
 // UPDATE
 String who = "Saruman";
 String updateQuery = 
"update customer set address='The Shire' where name='"+who+"'";
 result = stat.executeUpdate(updateQuery);
 
 // PREPARED STATEMENT
 String insertSQL = 
"insert into customer (name,address) values (?, ?)";
 PreparedStatement prep = conn.prepareStatement(insertSQL);
 
   prep.setString(1, "Eomer");
   prep.setString(2, "Rohan");
   prep.addBatch();
 
   prep.setString(1, "Sam");
   prep.setString(2, "The Shire");
   prep.addBatch();
 
   prep.executeBatch();
   resultset.close();
   conn.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
 
}