Java admite muchas bases de datos y, para cada base de datos, debemos tener sus respectivos archivos jar para colocarlos en la ruta de compilación para continuar con la conectividad JDBC. Para diferentes bases de datos, se importan diferentes archivos jar para hacer una conexión que se indica a continuación o se supone que se agrega su ruta construida para bases de datos específicas.
- Tipos de base de datos
Ilustración: Las bases de datos SQL y Oracle se utilizan principalmente para ilustración. Aquí se tiene en cuenta la base de datos SQL. Aquí Table_Name es el nombre de la tabla. Aquí tomará todas las columnas y contará las filas.
Entrada: los datos existentes en la tabla se muestran en la siguiente imagen
- Servidor SQL utilizado: sqljdbc4.jar
- tabla SQL utilizada
CREATE TABLE `studentsdetails` ( `id` int(6) unsigned NOT NULL, `Name` varchar(50) NOT NULL, `caste` varchar(10) NOT NULL, `NeetMarks` int(11) NOT NULL, `gender` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Enfoques:
Una forma menos eficiente de crear una consulta
select count(*) from Table_Name;
Una forma más eficiente de crear una consulta
select count(1) from Table_Name;
Esta consulta tomará la primera columna y contará las filas. Como la mayoría de las veces, la clave principal es la primera columna, es lo suficientemente ideal ya que la clave principal siempre es única y no nula.
Ejemplo 1 | Ejemplo 2 |
---|---|
Dará solo una fila como salida que contiene un número de filas. Por lo tanto, ‘resultset’ se mantendrá como el siguiente. | select * traerá todo el conjunto de resultados y el cursor se verá obligado a moverse en último lugar y, finalmente, el método ‘resultset.getRow()’ dará el número de filas. |
es mas eficiente | Es comparativamente menos eficiente. |
Ejemplo 1: Para obtener el número de filas en una tabla en JDBC seleccionando count(1) de ‘studentsdetails’ proporcionará el resultado como 5.
Java
/* Java Program to use different row methods to get no of rows in a table in JDBC */ // Step 1: Importing database libraries import java.sql.*; // Only main class- GFG is shown // connection class object is used public class GFG { // Main driver method public static void main(String[] args) { // Initially connection is assigned Null valued Connection con = null; ResultSet res = null; // Try block to check exceptions try { /* Step 2: Load and register drivers or relevant jars in build path of project */ // Here- 'mysql-connector-java-8.0.22' // is used using Class.forNmae() method Class.forName("com.mysql.cj.jdbc.Driver"); /* Step 3: Establish a connection using DriverManager method */ con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?serverTimezone=UTC", "root", ""); // Try block to check exceptions try { Statement st = con.createStatement(); /* This query will take first column and count the rows. As mostly, Primary key is the first column, it is ideal enough as Primary key is always unique and not null */ /* Step 4: Create a statement */ /* Alias name is used as NumberOfRows for COUNT(1) Moving the cursor to the last row */ res = st.executeQuery( "SELECT COUNT(1) as NumberOfRows FROM " + "studentsdetails"); /* Step 5: Execute the query */ res.next(); /* Step 6: Process the results */ System.out.println( "MySQL Table - studentsdetails contains " + res.getInt("NumberOfRows") + " rows"); } // Catch block to handle exceptions catch (SQLException s) { // Message to be displayed if SQLException // occurs System.out.println( "SQL statement is not executed!"); } } catch (Exception e) { /* Displaying line where exception occurred using method returning line number in code */ e.printStackTrace(); } finally { // Step 7: Closing the connection res = null; con = null; } } }
Producción:
Ejemplo 2: Para obtener el número de filas en una tabla en JDBC
Java
/* Step 1: Importing Database libraries */ import java.sql.*; /* Only main class-GFG is shown Connection class of JDBC is not shown. Object of connection class is used */ public class GFG { // Main driver method public static void main(String[] args) { /* Objects are assigned null before any execution */ // Connection class objects Connection con = null; ResultSet res = null; // Try block to check exceptions try { /* Step 2: Load and register drivers or relevant jars in build path of project */ // Driver used- 'mysql-connector-java-8.0.22' // Loading and register drivers // using Class.forname() method Class.forName("com.mysql.cj.jdbc.Driver"); /* Step 3: Create a connection */ // using DriverManager con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?serverTimezone=UTC", "root", ""); // Display message when connection // is successfully established System.out.println( "Connection is established"); // Try block to check exceptions try { /* In order to avoid Result set type is TYPE_FORWARD_ONLY */ Statement st = con.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); /* Query takes first column and count the rows. As mostly, Primary key is the first column, it is ideal enough as Primary key is always unique & not null. */ /* Step 4: Creating the statement */ res = st.executeQuery("SELECT * FROM " + "studentsdetails"); /* Step 5: Execute the statements */ // Moving the cursor to the last row res.last(); /* Step 6: Process the results */ System.out.println( "MySQL Table - studentsdetails contains " + res.getRow() + " rows"); } // Catch block to handle exceptions catch (SQLException s) { // Exception handled if it is SQL based System.out.println( "SQL statement is not executed!" + s.getMessage()); } } catch (Exception e) { // Exception handled here if it is generic // program based e.printStackTrace(); } finally { // Step 7: Closing the connection res = null; con = null; } } }
Producción:
Publicación traducida automáticamente
Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA