JAVA:
  1. /**
  2. *
  3. * @author albertjh
  4. */
  5. import java.sql.*;
  6. public class Modificacion {
  7.    static String bd = "DATOS";
  8.    static String login = "root";
  9.    static String password = "";
  10.    static String url = "jdbc:mysql://localhost/"+bd;
  11.    public static void main(String[] args) throws Exception {
  12.         String Nombre,Apellido,DNI;
  13.         int Edad;
  14.         Connection conn = null;
  15.       try {
  16.          Class.forName("com.mysql.jdbc.Driver").newInstance();
  17.          System.out.println("Dame tu contraseña: ");
  18.          password=Leer.dato();
  19.          conn = DriverManager.getConnection(url,login,password);
  20.          Statement SentenciaSQL =  conn.createStatement(
  21.          ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
  22.          ResultSet Personas = SentenciaSQL.executeQuery("SELECT * FROM DatosPersonales");
  23.      while (Personas.next()) {
  24.        Nombre = Personas.getString("Nombre");
  25.        Apellido = Personas.getString("Apellido");
  26.        if (Apellido.equalsIgnoreCase("Moreno")&&Nombre.equalsIgnoreCase("Ana")){
  27.          // IMPORTANTE: por cada getXxxxx("Campo") hay que realizar
  28.          //    un updateXxxxx("Campo")
  29.          Personas.updateString("Nombre","Luis");
  30.          Personas.updateString("Apellido","Reverte");
  31.          Personas.updateInt("Edad",45);
  32.          Personas.updateString("DNI","47645876F");
  33.          Personas.updateRow();
  34.          System.out.println("Registro modificado");
  35.          break;
  36.        }
  37.      }
  38.      Personas.close();
  39.      conn.close();
  40.      SentenciaSQL.close();
  41.     }
  42.     catch (ClassNotFoundException e) {
  43.       System.out.println("Clase no encontrada");
  44.     }
  45.     catch (SQLException e) {
  46.       System.out.println(e);
  47.     }
  48.   }
  49. }

Comments No Hay Comentarios »

Este post va a ser el último de acceso a BBDD desde Java, simplemente quería poner una recopilación de métodos para hacer cosas útiles con Java y MySQL. Si tengo algún proyecto importante de este tipo seguro que lo colgaré por el blog.

JAVA:
  1. /**
  2. *
  3. * @author albertjh
  4. */
  5. import java.sql.*;
  6. public class Borrado {
  7.    static String bd = "DATOS";
  8.    static String login = "root";
  9.    static String password = "";
  10.    static String url = "jdbc:mysql://localhost/"+bd;
  11.    public static void main(String[] args) throws Exception {
  12.       Connection conn = null;
  13.       String Nombre,Apellido,DNI;
  14.       int Edad;
  15.       try {
  16.          Class.forName("com.mysql.jdbc.Driver").newInstance();
  17.          System.out.println("Dame tu contraseña: ");
  18.          password=Leer.dato();
  19.          conn = DriverManager.getConnection(url,login,password);
  20.          if (conn != null)
  21.          {
  22.            System.out.println("Conexión a base de datos "+url+" ... Ok");
  23.            Statement SentenciaSQL = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
  24.            ResultSet Personas = SentenciaSQL.executeQuery("SELECT * FROM DatosPersonales");
  25.              while (Personas.next())
  26.             {
  27.                 Nombre = Personas.getString("Nombre");
  28.                 Apellido = Personas.getString("Apellido");
  29.                 if (Apellido.equalsIgnoreCase("Cela")&&Nombre.equalsIgnoreCase("Pedro"))
  30.              {
  31.                     System.out.println("Registro eliminado");
  32.                      Personas.deleteRow();
  33.                   break;
  34.              }
  35.         }
  36.         Personas.close();
  37.         conn.close();
  38.         SentenciaSQL.close();
  39.         }
  40.       }
  41.       catch(SQLException ex) {
  42.          System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);
  43.       }
  44.       catch(ClassNotFoundException ex) {
  45.          System.out.println(ex);
  46.       }
  47.    }
  48. }

Comments No Hay Comentarios »

JAVA:
  1. /**
  2. *
  3. * @author albertjh
  4. */
  5. import java.sql.*;
  6. public class Listado {
  7.    static String bd = "DATOS";
  8.    static String login = "root";
  9.    static String password = "";
  10.    static String url = "jdbc:mysql://localhost/"+bd;
  11.    public static void main(String[] args) throws Exception {
  12.       String Nombre,Apellido,DNI;
  13.       int Edad;
  14.       Connection conn = null;
  15.       try {
  16.          Class.forName("com.mysql.jdbc.Driver").newInstance();
  17.          System.out.println("Dame tu contraseña: ");
  18.          password=Leer.dato();
  19.          conn = DriverManager.getConnection(url,login,password);
  20.          if (conn != null) {
  21.             System.out.println("Conexión a base de datos "+url+" ... Ok");
  22.             Statement SentenciaSQL = conn.createStatement();
  23.             ResultSet Personas = SentenciaSQL.executeQuery("SELECT * FROM DatosPersonales");
  24.            while (Personas.next())
  25.            {
  26.             DNI = Personas.getString("DNI");
  27.             Nombre = Personas.getString("Nombre");
  28.             Apellido = Personas.getString("Apellido");
  29.             Edad = Personas.getInt("Edad");
  30.             System.out.println(Nombre+" "+Apellido+", "+Edad+", "+DNI);
  31.              }
  32.      Personas.close();
  33.      conn.close();
  34.      SentenciaSQL.close();
  35.          }
  36.       }
  37.       catch(SQLException ex) {
  38.          System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);
  39.       }
  40.       catch(ClassNotFoundException ex) {
  41.          System.out.println(ex);
  42.       }
  43.    }
  44. }

Comments No Hay Comentarios »

Solamente cambia el Statement SentenciaSQL = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); del ejemplo anterior, e insertar unos campos:

JAVA:
  1. /**
  2. *
  3. * @author albertjh
  4. */
  5. import java.sql.*;
  6. public class Inserccion {
  7.    static String bd = "DATOS";
  8.    static String login = "root";
  9.    static String password = "";
  10.    static String url = "jdbc:mysql://localhost/"+bd;
  11.    public static void main(String[] args) throws Exception {
  12.       Connection conn = null;
  13.       try {
  14.          Class.forName("com.mysql.jdbc.Driver").newInstance();
  15.          System.out.println("Dame tu contraseña: ");
  16.          password=Leer.dato();
  17.          conn = DriverManager.getConnection(url,login,password);
  18.          if (conn != null) {
  19.             System.out.println("Conexión a base de datos "+url+" ... Ok");
  20.             Statement SentenciaSQL = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
  21.             ResultSet Personas = SentenciaSQL.executeQuery("SELECT * FROM DatosPersonales");
  22.             Personas.moveToInsertRow();
  23.             Personas.updateString("DNI","50839979M");
  24.             Personas.updateString(2,"Pedro");
  25.             Personas.updateString("Apellido","Cela");
  26.             Personas.updateInt("Edad",78);
  27.             Personas.insertRow();
  28.             // Personas.moveToCurrentRow();
  29.             Personas.close();
  30.             conn.close();
  31.             SentenciaSQL.close();
  32.          }
  33.       }
  34.       catch(SQLException ex) {
  35.          System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);
  36.       }
  37.       catch(ClassNotFoundException ex) {
  38.          System.out.println(ex);
  39.       }
  40.    }
  41. }

Ahora podemos observar como se ha llenado la tabla:

mysql> SELECT * FROM DatosPersonales;
+-----------+--------+----------+------+
| DNI       | Nombre | Apellido | Edad |
+-----------+--------+----------+------+
| 50839979M | Pedro  | Cela     |   78 |
+-----------+--------+----------+------+
1 row in set (0.00 sec)
mysql>

Comments 2 Comentarios »

No creo que haya mucho que explicar aquí, si tienes alguna duda consúltala aquí, pero siempre puedes dirigirte al API de Java.
Este código solamente se conecta y si lo hace bien se sale, no ejecuta nada más.

JAVA:
  1. /**
  2. *
  3. * @author albertjh
  4. */
  5. import java.sql.*;
  6. public class TestConnection {
  7.    static String bd = "DATOS";
  8.    static String login = "root";
  9.    static String password = "";
  10.    static String url = "jdbc:mysql://localhost/"+bd;
  11.    public static void main(String[] args) throws Exception {
  12.       Connection conn = null;
  13.       try {
  14.          Class.forName("com.mysql.jdbc.Driver").newInstance();
  15.          System.out.println("Dame tu contraseña: ");
  16.          password=Leer.dato();
  17.          conn = DriverManager.getConnection(url,login,password);
  18.          if (conn != null) {
  19.             System.out.println("Conexión a base de datos "+url+" ... Ok");
  20.             conn.close();
  21.          }
  22.       }
  23.       catch(SQLException ex) {
  24.          System.out.println("Hubo un problema al intentar conectarse con la base de datos "+url);
  25.       }
  26.       catch(ClassNotFoundException ex) {
  27.          System.out.println(ex);
  28.       }
  29.    }
  30. }

Comments 1 Comentario »

Vamos a crearnos una tabla en la base de datos para probar nuestros programas en Java.

Primero vamos a acceder a nuestra base de datos:

mysql -u root -p

Una vez dentro, vamos a introducir un pequeño script para crear automáticamente una tabla llamada DATOS y dentro de ella una serie de campos tales como: DNI, Apellidos, Nombre, Edad, ...

Estando en el prompt y copiando este script a un fichero llamado cargarTabla.sql

mysql> source /home/albertjh/cargarTabla.sql
Query OK, 1 row affected (0.22 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.04 sec)
mysql>

Y como veis los campos se han añadido...

Os pongo el script:

SQL:
  1. #script para cargar la tabla ejemplo del tema acceso a base de datos
  2. ######## SELECCION DE LA BASE DE DATOS #############
  3.  
  4. DROP DATABASE IF EXISTS DATOS;
  5. CREATE DATABASE DATOS;
  6. USE DATOS;
  7.  
  8. ######### BORRADO DE TABLAS #############
  9. DROP TABLE IF EXISTS DatosPersonales;
  10.  
  11. ########## CREACIÓN DE LA TABLA DatosPersonales ###########
  12. CREATE TABLE DatosPersonales
  13. (DNI        VARCHAR(10),
  14. Nombre  VARCHAR(30),
  15. Apellido    VARCHAR(30),
  16. Edad        INT(3),
  17.  
  18. CONSTRAINT PK_DNI PRIMARY KEY (DNI)
  19.  
  20. )ENGINE = INNODB;

Lo único que hace este pequeño script es leer línea a línea las sentencias y así ir creando las tablas.
Podemos verlas así:

mysql> SHOW TABLES;
+-----------------+
| Tables_in_DATOS |
+-----------------+
| DatosPersonales |
+-----------------+
1 row in set (0.00 sec)
mysql> DESCRIBE DatosPersonales;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| DNI      | varchar(10) | NO   | PRI |         |       |
| Nombre   | varchar(30) | YES  |     | NULL    |       |
| Apellido | varchar(30) | YES  |     | NULL    |       |
| Edad     | int(3)      | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.40 sec)
mysql>

Ahora podemos trabajar sobre esta tabla de ejemplo con los posteriores códigos que os enseñaré.

Comments No Hay Comentarios »