package com.trifulcas.datos; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class AccesoSakila { public static void main(String[] args) { try { // Lo primero de todo crear una conexión CTRL+MAY+O -> importación automática de los paquetes que falten // Esta línea nos 'registra' el conector mysql dentro de Java Class.forName("com.mysql.cj.jdbc.Driver"); // Aquí nos creamos la conexión con una cadena de conexión // Lo primero es el tipo de conector: jdbc:mysql // Después la url del servidor SGBD //localhost:3306/ // Después opcionalmente pero está bien ponerlo la base de datos /sakila // Por último usuario y contraseña root '' Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sakila", "root", ""); System.out.println("Conexión correcta"); // Con esta conexión yo puedo lanzar comandos a la base de datos. // Los comandos son SQL y pueden ser de dos tipos: // Lectura de datos (SELECT) // Modificación de datos (INSERT,UPDATE,DELETE) // Crear una sentencia Statement // Puedo lanzar dos tipos de ejecución: // executeQuery: consulta, me devolverá datos // executeUpdate: modificación, no me devuelve datos Statement stmt = con.createStatement(); // Crearme una sentencia sql para obtener unos datos String sql="select * from actor where first_name like 'b%'"; // Guardo los resultados en un ResultSet: Una clase que nos permite ir leyendo los // Registros que nos ha devuelto nuestra consulta ResultSet rs = stmt.executeQuery(sql); // Cada vez que yo quiero un registro llamo a next() // Cuando no haya registros devuelve false y sale del while while (rs.next()) { // Una vez he 'cargado' un registro puedo acceder a los campos de dos maneras // Por el índice de la columna (empezando por el 1) System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " + rs.getString(3)); int id=rs.getInt(1); String first_name=rs.getString(2); String last_name=rs.getString(3); System.out.println(id+"-"+first_name+" - "+last_name); // Por el nombre de la columna // En los dos casos como Java es tipado tengo que usar el tipo correspondiente // getInt, getString,... id=rs.getInt("actor_id"); first_name=rs.getString("first_name"); last_name=rs.getString("last_name"); System.out.println(id+" | "+first_name+" | "+last_name); } // Para modificar datos es más sencillo puesto que no tenemos resultados // Plantamos nuestra sentencia sql sql="insert into actor (first_name,last_name) values ('aa','bb')"; // La ejecutamos con executeUpdate que no devuelve un ResultSet // Devuelve el número de filas afectadas int res=stmt.executeUpdate(sql); System.out.println(res); // La sentencia sql pueder un update o un delete sql="update actor set last_name='bbb' where first_name ='aa'"; res=stmt.executeUpdate(sql); System.out.println(res); } catch (Exception ex) { System.out.println(ex); } } }