Formación informática

Java | Joomla | MySQL

Curso de Java - Tema 32.4.3: realización de consultas para insertar datos

¿Sabes ubicar este lugar?Este es otra operación básica que va a realizarse en cualquier base de datos con la que estemos trabajando. Así que es muy importante conocer cómo se realiza.

Instrucción SQL

La instrucción SQL que tenemos que usar para insertar datos en una tabla es INSERT, cuya sintaxis genérica es esta de acuerdo al manual de la versión 5.7 de MySQL:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

   [INTO] tbl_name

   [PARTITION (partition_name [, partition_name] ...)]

   [(col_name [, col_name] ...)]

   {VALUES | VALUE} (value_list) [, (value_list)] ...

   [ON DUPLICATE KEY UPDATE assignment_list]

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]

   [INTO] tbl_name

   [PARTITION (partition_name [, partition_name] ...)]

   SET assignment_list

   [ON DUPLICATE KEY UPDATE assignment_list]

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]

   [INTO] tbl_name

   [PARTITION (partition_name [, partition_name] ...)]

   [(col_name [, col_name] ...)]

   SELECT ...

   [ON DUPLICATE KEY UPDATE assignment_list]

value:

   {expr | DEFAULT}

value_list:

   value [, value] ...

assignment:

   col_name = value

assignment_list:

   assignment [, assignment] ...

En esta instrucción tenemos que indicar la tabla y los campos dónde vamos a insertar los nuevos registros. Hay que conocer la estructura de la tabla para saber si hay campos autonuméricos u otro tipo de campos cuyo valor no tenemos que introducir nosotros.

Proceso

Para insertar un nuevo registro en una tabla tenemos que crear en la clase ManejadorBaseDatos un método que no devuelve nada un método que pida la introducción del valor o valores a introducir en la tabla para lo cuá usaremos variables temporales en el que usaremos los métodos set de la interface PreparedStatement. De forma detallada usaremos:

  1. El método conector que hemos creado anteriormente para realizar la conexión con la base de datos.
  1. Una o varias variables de tipo adecuado para almacenar el valor o valores que queremos usar en nuestra consulta para insertar los datos
  2. Una variable de tipo String para almacenar la consulta SQL a ejecutar.
  3. La interface PreparedStatament para ejecutar una consulta en la que introduciremos los valores de las variables. Usaremos el método execute para ejecutar la consulta almacenada en la variable y que nos devuelva un objeto. Usaremos los métodos set de esta interface para introducir los datos mediante un sistema de clave-valor en el cuál mediante el símbolo de cerrar integorración (?) se representa cada uno de los datos a introducir mediante su posición y el dato a introducir: el primero 1, el segundo 2… pudiendo usar tanto valores escritos directamente cómo variables. Así algunos ejemplos de método set son:
setString(posición, valor)
setString(posición, variable)
setInt(posición, variable)
setDouble(posición, variable)
  1. Por último, no hay que olvidarse de liberar los recursos usados cerrando todos los objetos que hemos usado durante el proceso. Lo ideal es hacerlo dentro del bloque finally para asegurse que se ejecuta este código en cualquier caso.

En el método Main de la clase Main tenemos que usar el método que hemos creado antes que se encarga por completo de realizar el proceso.

Así si queremos introducir en nuestra base de datos una nueva Comunidad Autónoma cuyo nombre es Tabarnia tenemos que escribir en la clase ManejadorBaseDatos el siguiente método:

    public void insertarComunidad() {
        /* Instanciamos un objeto de tipo Scanner para detectar la entrada de datos 
			 por línea de comandos*/
        Scanner teclado = new Scanner(System.in);
        /* Realizamos la conexión con la base de datos usando el método conector*/
        Connection conexion = conector();
        /* Instanciamos un objeto de la clase PreparedStatement y lo inicializamos a 
			 null*/
        PreparedStatement consulta = null;
        /* Comprobamos si existe la condición para realizar el tratamiento adecuado*/
        if (conexion != null) {
            try {
                /* Creamos la consulta sql para insertar los datos*/
                String sql = "insert into comunidad (codigo_comunidad, comunidad) 
					    values (?,?)";
                /* Configuramos una sentencia preparada y uso sus método para 
                introducir los datos*/
                consulta = conexion.prepareStatement(sql);
                /* Usamos dos variables para guardar los datos introducidos por el 
						  usuario*/
                System.out.println("Introduza el código de la Comunidad Autónoma");
                String codigoComunidad = teclado.nextLine();
                System.out.println("Introduzca el nombre de la Comunidad Autónoma");
                String comunidad = teclado.nextLine();
                /* Ejecutamos la consulta preparada con los datos introducidos por el 
                usuario*/
                consulta.setString(1, codigoComunidad);
                consulta.setString(2, comunidad);
                consulta.execute();

            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            } finally {
                try {
                    /*Para liberar recursos cerramos los objetos*/
                    consulta.close();
                    conexion.close();
                } catch (SQLException ex) {
                    ex.getMessage();
                }
            }

        } else {
            System.out.println("Conexión no disponible. Compruebe los datos");
        }
    }

Mientras que en el método Main la clase Main tenemos que añadir el siguiente código:

/* Usamos el método para insertar los datos de una nueva Comunidad*/
mbd.insertarComunidad();
Curso de Java - Tema 32.4.2: realización de consultas de selección sobre varias tablas con filtrado de datos | Curso de Java - Tema 32.4.4: realización de consultas para actualizar datos
Curso de Java - Índice Ejercicios Nivel Medio

Escribir un comentario

Aunque los comentarios no expresan la opinión del administrador del sitio web, éste si que tiene una responsabilidad legal sobre lo que aparece. Por lo tanto, habrá una labor de moderación de los mensajes. No se permitirán mensajes ofensivos ni publicidad


Código de seguridad
Refescar

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-Ley 13/2012, de 30 de marzo. Si continúa navegando consideramos que acepta el uso de cookies. . Más información