Para poder utilizar la base de datos MySQL desde una aplicación Java necesitamos descargar el conector para Java que ofrece MySQL en su sitio web
http://dev.mysql.com/downloads/connector/j/
Allí seleccionad la versión adecuada para vuestro servidor de base de datos.
Pongo una clase de ejemplo muy sencillo para ver cómo se realiza una consulta SQL común.
import java.sql.*;
public class conexionMySql{
static String dbName = "databaseName";
static String dbUser = "user";
static String dbPass = "pass";
static String dbUrl = "jdbc:mysql://localhost/" + dbName;
public static void main(String[] args) {
Connection connection = null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection =
DriverManager.getConnection(dbUrl, dbUser, dbPass);
if (connection != null) {
Statement stmt = connection.createStatement();
ResultSet result =
stmt.executeQuery("SELECT * FROM empleados");
while(res.next()) {
String id = result.getString("id");
String nombre = result.getString("nombre");
float salario = result.getFloat("salario");
System.out.println(id +" t "+name+" t "+salario);
}
result.close();
stmt.close();
connection.close();
}
}
catch(SQLException ex) {
System.out.println("Error connecting: "+ex);
}
catch(ClassNotFoundException ex) {
System.out.println("Connector not found: "+ex);
}
}
}
Sentencias precompiladas:
Cuando queremos ejecutar una misma sentencia muchas veces pero con diferentes valores se pierde eficiencia si tenemos que compilar dicha sentencia y mandarla a la base de datos. Para ello, se utilizan las sentencias preparadas conocidas como preparedStatement. Son sentencias precompiladas en las que se puede cambiar los valores en cada ejecución sin volver a compilar.
PreparedStatement updateSalario =
connection.prepareStatement(
"UPDATE empleados SET salario = ? WHERE nombre LIKE ?");
String[] nombres = {"Pepe","Andres","Antonio","Geromo"}
//asignamos valores en un bucle
for (int i=0; i<nombres.lentgh; i++){
updateSalario.setFloat(1, 1200);
updateSalario.setString(2, nombres[i]);
updateSalario.executeUpdate();
}