Realización de operaciones de base de datos en Java | SQL CREAR, INSERTAR, ACTUALIZAR, ELIMINAR y SELECCIONAR

Este artículo lo ayudará a aprender cómo realizar operaciones básicas de base de datos utilizando la API JDBC (Java Database Connectivity). Estas operaciones básicas son declaraciones INSERT, SELECT, UPDATE y DELETE en lenguaje SQL . Aunque el sistema de base de datos de destino es Oracle Database, las mismas técnicas se pueden aplicar a otros sistemas de bases de datos debido a que la sintaxis de consulta utilizada es SQL estándar y generalmente es compatible con todos los sistemas de bases de datos relacionales.
Requisitos previos: 

Debe leer este artículo  antes de continuar para una mejor comprensión.
Crear un usuario en Oracle Database y otorgar los permisos necesarios: 

  • Abra Oracle usando cmd. Para eso, escriba sqlplus en cmd y presione Entrar.
  • Cree una identificación de usuario protegida por una contraseña. Este ID de usuario se denomina usuario secundario. 
create user  identified by ;
  • Otorgue los permisos requeridos al usuario secundario. Para simplificar, otorgamos privilegios de administrador de la base de datos al usuario secundario. 
conn / as sysdba;
grant dba to ;

Cree una tabla de muestra con campos en blanco: 

CREATE TABLE userid(
    id varchar2(30) NOT NULL PRIMARY KEY,
    pwd varchar2(30) NOT NULL,
    fullname varchar2(50),
    email varchar2(50)
);

Principales interfaces y clases de JDBC

Echemos un vistazo general a las principales interfaces y clases de JDBC que usaremos en este artículo. Todos están disponibles en el paquete java.sql
 

  • Class.forName() : Aquí cargamos el archivo de clase del controlador en la memoria en tiempo de ejecución. No hay necesidad de usar nuevos o crear objetos. 
Class.forName("oracle.jdbc.driver.OracleDriver");
  • DriverManager: esta clase se utiliza para registrar el controlador para un tipo de base de datos específico (por ejemplo, Oracle Database en este tutorial) y para establecer una conexión de base de datos con el servidor a través de su método getConnection() .
  • Conexión: esta interfaz representa una conexión de base de datos establecida (sesión) desde la cual podemos crear declaraciones para ejecutar consultas y recuperar resultados, obtener metadatos sobre la base de datos, cerrar conexión, etc. 
Connection con = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:orcl", "login1", "pwd1");
  • Declaración y declaración preparada : estas interfaces se utilizan para ejecutar consultas SQL estáticas y consultas SQL parametrizadas, respectivamente. Statement es la superinterfaz de la interfaz PreparedStatement . Sus métodos comúnmente utilizados son:
    1. boolean execute(String sql): ejecuta una sentencia SQL general. Devuelve verdadero si la consulta devuelve un ResultSet , falso si la consulta devuelve un recuento de actualizaciones o no devuelve nada. Este método solo se puede utilizar con una instrucción .
    2. int executeUpdate(String sql): ejecuta una instrucción INSERT, UPDATE o DELETE y devuelve una cuenta de actualización que indica el número de filas afectadas (por ejemplo, 1 fila insertada, 2 filas actualizadas o 0 filas afectadas). 
Statement stmt = con.createStatement();
      String q1 = "insert into userid values
      ('" +id+ "', '" +pwd+ "', '" +fullname+ "', '" +email+ "')";
      int x = stmt.executeUpdate(q1);
  • ResultSet executeQuery(String sql): ejecuta una declaración SELECT y devuelve un objeto ResultSet que contiene los resultados devueltos por la consulta. 
Statement stmt = con.createStatement();
      String q1 = "select * from userid WHERE id = '" + id + "' 
      AND pwd = '" + pwd + "'";
      ResultSet rs = stmt.executeQuery(q1);
  • ResultSet: contiene datos de tabla devueltos por una consulta SELECT. Use este objeto para iterar sobre filas en el conjunto de resultados usando el método next().
  • SQLException: esta excepción verificada se declara lanzada por todos los métodos anteriores, por lo que debemos detectar esta excepción explícitamente al llamar a los métodos de las clases anteriores.

Conexión a la base de datos

El servidor de Oracle Database escucha en el puerto predeterminado 1521 en localhost . El siguiente fragmento de código se conecta al nombre de la base de datos userid mediante el usuario login1 y la contraseña pwd1 .

Java

// Java program to illustrate
// Connecting to the Database
import java.sql.*;
 
public class connect
{
    public static void main(String args[])
    {
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
             
            // Establishing Connection
            Connection con = DriverManager.getConnection(
             "jdbc:oracle:thin:@localhost:1521:orcl", "login1", "pwd1");
 
            if (con != null)            
                System.out.println("Connected");           
            else           
                System.out.println("Not Connected");
             
            con.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
Output :
Connected

Nota: Aquí Oracle en la URL de la base de datos en el método getConnection() especifica el SID de la base de datos Oracle. Para la base de datos Oracle 11g es orcl y para la base de datos Oracle 10g es xe .
 

Implementación de la declaración de inserción

Java

// Java program to illustrate
// inserting to the Database
import java.sql.*;
 
public class insert1
{
    public static void main(String args[])
    {
        String id = "id1";
        String pwd = "pwd1";
        String fullname = "geeks for geeks";
        String email = "geeks@geeks.org";
         
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("
             jdbc:oracle:thin:@localhost:1521:orcl", "login1", "pwd1");
            Statement stmt = con.createStatement();
             
            // Inserting data in database
            String q1 = "insert into userid values('" +id+ "', '" +pwd+
                                  "', '" +fullname+ "', '" +email+ "')";
            int x = stmt.executeUpdate(q1);
            if (x > 0)           
                System.out.println("Successfully Inserted");           
            else           
                System.out.println("Insert Failed");
             
            con.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
Output :
Successfully Registered

Implementación de la declaración de actualización

Java

// Java program to illustrate
// updating the Database
import java.sql.*;
 
public class update1
{
    public static void main(String args[])
    {
        String id = "id1";
        String pwd = "pwd1";
        String newPwd = "newpwd";
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("
             jdbc:oracle:thin:@localhost:1521:orcl", "login1", "pwd1");
            Statement stmt = con.createStatement();
         
            // Updating database
            String q1 = "UPDATE userid set pwd = '" + newPwd +
                    "' WHERE id = '" +id+ "' AND pwd = '" + pwd + "'";
            int x = stmt.executeUpdate(q1);
             
            if (x > 0)           
                System.out.println("Password Successfully Updated");           
            else           
                System.out.println("ERROR OCCURRED :(");
             
            con.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
Output :
Password Successfully Updated

Implementación de la declaración de eliminación

Java

// Java program to illustrate
// deleting from Database
import java.sql.*;
 
public class delete
{
    public static void main(String args[])
    {
        String id = "id2";
        String pwd = "pwd2";
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("
             jdbc:oracle:thin:@localhost:1521:orcl", "login1", "pwd1");
            Statement stmt = con.createStatement();
                  
            // Deleting from database
            String q1 = "DELETE from userid WHERE id = '" + id +
                    "' AND pwd = '" + pwd + "'";
                     
            int x = stmt.executeUpdate(q1);
             
            if (x > 0)           
                System.out.println("One User Successfully Deleted");           
            else
                System.out.println("ERROR OCCURRED :("); 
           
            con.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
Output :
One User Successfully Deleted

Implementación de la instrucción Select

Java

// Java program to illustrate
// selecting from Database
import java.sql.*;
 
public class select
{
    public static void main(String args[])
    {
        String id = "id1";
        String pwd = "pwd1";
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("
                    jdbc:oracle:thin:@localhost:1521:orcl", "login1", "pwd1");
            Statement stmt = con.createStatement();
             
            // SELECT query
            String q1 = "select * from userid WHERE id = '" + id +
                                    "' AND pwd = '" + pwd + "'";
            ResultSet rs = stmt.executeQuery(q1);
            if (rs.next())
            {
                System.out.println("User-Id : " + rs.getString(1));
                System.out.println("Full Name :" + rs.getString(3));
                System.out.println("E-mail :" + rs.getString(4));
            }
            else
            {
                System.out.println("No such user id is already registered");
            }
            con.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }
    }
}
Output :
User-Id : id1
Full Name : geeks for geeks
E-mail :geeks@geeks.org

Nota: aquí, el índice de la columna está basado en 1, la primera columna estará en el índice 1, la segunda en el índice 2, y así sucesivamente. 
Para otros tipos de datos, el ResultSet proporciona métodos getter apropiados:

  • obtenerString()
  • getInt()
  • getFloat()
  • obtener la fecha()
  • getTimestamp()
  • …..

Este artículo es una contribución de Sangeet Anand . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *