¿Cómo enviar una consulta en JDBC?

El comando COMMIT se usa para guardar permanentemente cualquier transacción en la base de datos. Se utiliza para finalizar su transacción actual y hacer permanentes todos los cambios realizados en la transacción. Una transacción es una secuencia de sentencias SQL que Oracle Database trata como una sola unidad. Esta declaración también borra todos los puntos de guardado en la transacción y libera los bloqueos de transacción.

Cuando usamos cualquier comando DML como INSERTAR, ACTUALIZAR o ELIMINAR, los cambios realizados por estos comandos no son permanentes, hasta que se cierre la sesión actual, los cambios realizados por estos comandos se pueden revertir. Para evitar eso, usamos el comando COMMIT para marcar los cambios como permanentes.

7 pasos para conectar nuestro programa Java al servidor MySQL usando la API JDBC

  1. Importar el paquete 
  2. Cargue y registre el controlador 
  3. Crear una conexión 
  4. Crear una declaración 
  5. Ejecutar la consulta 
  6. Procesar los resultados
  7. Cerrar la conexión
     

También necesitamos incluir el conector MySQL en nuestro proyecto.

Sintaxis de compromiso

COMMIT;

Consultas SQL utilizadas en el servidor SQL para crear la base de datos y la tabla respectivas

Crea una base de datos

CREATE DATABASE <DataBaseName>; 

Base de datos actual

use <DataBaseName>;

Crea una tabla en la base de datos actual

CREATE TABLE <TableName> (usn int,, name varchar(20)  ,  place varchar (20) );

Ejemplo

Java

// importing the my sql package
import java.sql.*;
 
/* The below code cannot generate the output here, since
 * there is no connection between client and mysql server
 *
 * Before running the project in your device
 * make SQL server connection with your project
 
 * create the respective database/table in sql server
 * in URL write the port number in which your mysql server
 * is running (By default it run in port number 3306)
 */
 
public class GFG {
 
    public static void main(String[] args)
    {
        // Database name
        String databaseName = "student";
 
        // Database URL
        String url
            = "jdbc:mysql://localhost:3306/" + databaseName;
 
        // Database credentials
        String userName = "root";
        String password = "root";
 
        Connection con = null;
        Statement st = null;
        ResultSet res = null;
        String query = "";
 
        try {
 
            // Register the jdbc driver
            Class.forName("com.mysql.jdbc.Driver");
 
            // open a connection to database
            con = DriverManager.getConnection(url, userName,
                                              password);
 
            // set auto commit false
            con.setAutoCommit(false);
 
            // creating statement
            st = con.createStatement();
 
            // first let us try to understand , how DB works
            //  without commit statement
            query
                = "INSERT INTO Student values ( 11 , 'Ram' , 'banglore' )";
 
            // executing query 1 -> adding the above
            // information into the table
            st.executeUpdate(query);
            System.out.println(
                "Inserted row 1 FIRST TIME in the table....");
 
            query
                = "INSERT INTO Student values ( 22 , 'Shyam' , 'Chennai' )";
            st.executeUpdate(query);
            System.out.println(
                "Inserted row 2 FIRST TIME in the table....");
 
            // lets , print what we have updated in the table
            query = "Select * from Student ; ";
            res = st.executeQuery(query);
 
            System.out.println(
                "printing data (without Rollback && without Commit )....");
 
            while (res.next())
                System.out.print(res.getString("name")
                                 + "   ");
            System.out.println();
 
            // lets try to rollback (undo the things ,till now we did)
            // see what difference it will make in the Database
            con.rollback();
 
            // lets checkout our DB again
            query = "Select * from Student";
            res = st.executeQuery(query);
 
            System.out.println(
                "printing data (with Rollback && without Commit )....");
            boolean empty = true;
 
            while (res.next()) {
                empty = false;
                System.out.print(res.getString("name")
                                 + "  ");
            }
            if (empty) {
                System.out.println("Empty table\n\n");
            }
 
            // Since we haven't committed our transaction ,
            // when we did rollback, everything is gone
            // Now lets ,try with the Commit Statement from
            // beginning
            query
                = "INSERT INTO Student values ( 11 , 'Ram' , 'banglore' )";
            st.executeUpdate(query);
            System.out.println(
                "Inserted row 1  SECOND TIME in the table....");
 
            query
                = "INSERT INTO Student values ( 22 , 'Shyam' , 'Chennai' )";
            st.executeUpdate(query);
            System.out.println(
                "Inserted row 2  SECOND TIME in the table....");
 
            // now we have committed our transaction
            con.commit();
            System.out.println(
                "committed the transaction successfully....");
 
            // lets rollback  and like previous lets check
            // what will be left in our database
            con.rollback();
            System.out.println("Done Rollback....");
 
            query = "Select * from Student";
            res = st.executeQuery(query);
 
            System.out.println(
                "printing data ( with Commit and then Rollback)....");
 
            while (res.next())
                System.out.print(res.getString("name")
                                 + "   ");
 
            System.out.println("\n");
        }
        catch (ClassNotFoundException e) {
            System.out.println("Driver Error");
            e.printStackTrace();
        }
        catch (SQLException e) {
            System.out.println("Connection Error");
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
 
        try {
 
            // Clean-up environment
            if (con != null)
                con.close();
            if (st != null)
                con.close();
            if (res != null)
                res.close();
        }
        catch (Exception e) {
 
            // Handle errors for JDBC
            System.out.println(e.getMessage());
        }
        finally {
            System.out.println("Thank you .........");
        }
    }
}

Producción

Inserted row 1 FIRST TIME in the table....
Inserted row 2 FIRST TIME in the table....
printing data (without Rollback && without Commit )....
Ram   Shyam    
printing data (with Rollback && without Commit )....
Empty table


Inserted row 1  SECOND TIME in the table....
Inserted row 2  SECOND TIME in the table....
committed the transaction successfully....
Done Rollback....
printing data ( with Commit and then Rollback)....
Ram   Shyam    

Thank you .........

Publicación traducida automáticamente

Artículo escrito por pradeepmondalp 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 *