Apache Derby - Récupérer des données

L'instruction SELECT est utilisée pour récupérer les données d'une table. Cela renvoie les données sous la forme d'une table appelée jeu de résultats.

Syntaxe

Voici la syntaxe de l'instruction SELECT -

ij> SELECT column_name, column_name, ... FROM table_name;
Or,
Ij>SELECT * from table_name

Exemple

Supposons que nous ayons une table nommée Employés dans la base de données comme indiqué ci-dessous -

ij> CREATE TABLE Employees (
   Id INT NOT NULL GENERATED ALWAYS AS IDENTITY,
   Name VARCHAR(255),
   Salary INT NOT NULL,
   Location VARCHAR(255),
   PRIMARY KEY (Id)
);
> > > > > > > 0 rows inserted/updated/deleted

Et, inséré quatre enregistrements comme indiqué ci-dessous -

ij> INSERT INTO Employees (Name, Salary, Location) VALUES
 ('Amit', 30000, 'Hyderabad'),
 ('Kalyan', 40000, 'Vishakhapatnam'),
 ('Renuka', 50000, 'Delhi'),
 ('Archana', 15000, 'Mumbai');
> > > > 4 rows inserted/updated/deleted

L'instruction SQL suivante récupère le nom, l'âge et les détails de salaire de tous les employés de la table;

ij> SELECT Id, Name, Salary FROM Employees;

Le résultat de cette requête est -

ID |NAME |SALARY
------------------------------------------------------------------------
1 |Amit |30000
2 |Kalyan |40000
3 |Renuka |50000
4 |Archana |15000
4 rows selected

Si vous souhaitez obtenir tous les enregistrements de cette table à la fois, utilisez * au lieu des noms des colonnes.

ij> select * from Employees;

Cela produira le résultat suivant -

ID |NAME |SALARY |LOCATION
------------------------------------------------------------------
1 |Amit |30000 |Hyderabad
2 |Kalyan |40000 |Vishakhapatnam
3 |Renuka |50000 |Delhi
4 |Archana |15000 |Mumbai
4 rows selected

Récupérer des données à l'aide du programme JDBC

Cette section vous apprend à récupérer des données à partir d'une table dans la base de données Apache Derby à l'aide de l'application JDBC.

Si vous souhaitez demander le serveur réseau Derby à l'aide du client réseau, assurez-vous que le serveur est opérationnel. Le nom de classe du pilote client réseau est org.apache.derby.jdbc.ClientDriver et l'URL est jdbc: derby: // localhost: 1527 /DATABASE_NAME; créer = vrai; utilisateur =USER_NAME; passw ord =PASSWORD"

Suivez les étapes ci-dessous pour récupérer les données d'une table dans Apache Derby -

Étape 1: enregistrer le pilote

Pour communiquer avec la base de données, vous devez tout d'abord enregistrer le pilote. leforName() méthode de la classe Classaccepte une valeur String représentant un nom de classe la charge dans la mémoire, qui l'enregistre automatiquement. Enregistrez le pilote en utilisant cette méthode.

Étape 2: Obtenez la connexion

En général, la première étape que nous faisons pour communiquer avec la base de données est de nous y connecter. leConnectionclass représente la connexion physique avec un serveur de base de données. Vous pouvez créer un objet de connexion en appelant legetConnection() méthode de la DriverManagerclasse. Créez une connexion à l'aide de cette méthode.

Étape 3: créer un objet instruction

Vous devez créer un Statement ou PreparedStatement ou, CallableStatementobjets pour envoyer des instructions SQL à la base de données. Vous pouvez les créer en utilisant les méthodescreateStatement(), prepareStatement() et, prepareCall()respectivement. Créez l'un de ces objets en utilisant la méthode appropriée.

Étape 4: exécutez la requête

Après avoir créé une instruction, vous devez l'exécuter. leStatement classe fournit diverses méthodes pour exécuter une requête comme execute()pour exécuter une instruction qui renvoie plusieurs ensembles de résultats. leexecuteUpdate()La méthode exécute des requêtes comme INSERT, UPDATE, DELETE. leexecuteQuery() méthode aux résultats qui renvoie des données, etc. Utilisez l'une de ces méthodes et exécutez l'instruction créée précédemment.

Exemple

L'exemple JDBC suivant montre comment récupérer des données à partir d'une table dans Apache Derby à l'aide du programme JDBC. Ici, nous nous connectons à une base de données nommée sampleDB (créera si elle n'existe pas) en utilisant le pilote intégré.

le executeQuery() méthode retourne un ResultSetobjet qui contient le résultat de l'instruction. Au départ, le pointeur du jeu de résultats se trouvera sur le premier enregistrement, vous pouvez imprimer le contenu de l'objet ResultSet en utilisant sonnext() et getXXX() méthodes.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class RetrieveData {
   public static void main(String args[]) throws SQLException,
      ClassNotFoundException {
      //Registering the driver
      Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
      //Getting the Connection object
      String URL = "jdbc:derby:sampleDB;create=true";
      Connection conn = DriverManager.getConnection(URL);

      //Creating the Statement object
      4Statement stmt = conn.createStatement();

      //Creating a table and populating it
      String query = "CREATE TABLE Employees("
         + "Id INT NOT NULL GENERATED ALWAYS AS IDENTITY, "
         + "Name VARCHAR(255), Salary INT NOT NULL, "
         + "Location VARCHAR(255), "
         + "PRIMARY KEY (Id))";
      String query = "INSERT INTO Employees("
         + "Name, Salary, Location) VALUES "
         + "('Amit', 30000, 'Hyderabad'), "
         + "('Kalyan', 40000, 'Vishakhapatnam'), "
         + "('Renuka', 50000, 'Delhi'), "
         + "('Archana', 15000, 'Mumbai'), "
         + "('Trupthi', 45000, 'Kochin'), "
         + "('Suchatra', 33000, 'Pune'), "
         + "('Rahul', 39000, 'Lucknow'), "
         + "('Trupti', 45000, 'Kochin')";
      //Executing the query
      String query = "SELECT Id, Name, Salary FROM Employees";
      ResultSet rs = stmt.executeQuery(query);
      while(rs.next()) {
         System.out.println("Id: "+rs.getString("Id"));
         System.out.println("Name: "+rs.getString("Name"));
         System.out.println("Salary: "+rs.getString("Salary"));
         System.out.println(" ");
      }
   }
}

Production

Lors de l'exécution du programme ci-dessus, vous obtiendrez la sortie suivante

Id: 1
Name: Amit
Salary: 30000

Id: 2
Name: Kalyan
Salary: 43000

Id: 3
Name: Renuka
Salary: 50000

Id: 4
Name: Archana
Salary: 15000

Id: 5
Name: Trupthi
Salary: 45000

Id: 6
Name: Suchatra
Salary: 33000

Id: 7
Name: Rahul
Salary: 39000