Comment connecter une base de données en Java? - Interfaces et fonctionnement JDBC

Table des matières:

Anonim

Comment connecter une base de données en Java?

Lors de l'écriture d'une application informatique à l'aide de n'importe quel langage de programmation, le flux de données depuis et vers l'application sert la fonctionnalité de base. Si le flux de données est affecté d'une manière ou d'une autre, il peut nuire à la fonctionnalité de l'application et entraîner une perte importante pour l'entreprise.

Il existe différentes méthodes disponibles aujourd'hui pour connecter votre programme à une base de données afin de fournir aux utilisateurs les informations qu'ils demandent, de collecter des informations auprès des utilisateurs, de supprimer les informations requises par l'utilisateur et également de mettre à jour quotidiennement les données dans la base de données.

Nous allons étudier une telle approche en utilisant Java comme langage de programmation, JDBC comme méthode de connectivité de base de données et en suivant l'approche orientée objet.

Qu'est-ce que JDBC?

JDBC signifie Java Database Connectivity et il aide un programme Java à effectuer différents types d'opérations sur la base de données telles que créer, lire, mettre à jour et supprimer. De plus, JDBC est une API Java.

En utilisant JDBC, un programmeur devrait être capable de:

  • Établir une connexion avec la base de données
  • Exécutez les commandes SQL en les envoyant à la base de données
  • Interprète les résultats provenant de la base de données

Création d'une base de données pour connecter une base de données en Java

Avant de travailler avec JDBC, il est nécessaire d'avoir une base de données pour s'y connecter. Nous utiliserons la base de données Oracle pour notre illustration. Veuillez télécharger l'édition express d'Oracle 11g à partir du lien ci-dessous.

https://www.oracle.com/technetwork/products/express-edition/overview/index-100989.html

J'ai déjà le programme d'installation d'Oracle 10g avec moi, comme vous pouvez le voir ci-dessous:

Source : depuis mon bureau

  • Veuillez double-cliquer sur le programme d'installation, l'écran ci-dessous apparaîtra. Cliquez sur Suivant.

Source : depuis mon bureau

  • Veuillez accepter le contrat de licence et cliquez sur suivant.

Source : depuis mon bureau

  • Veuillez conserver les paramètres par défaut tels quels et cliquez sur Suivant.

Source : depuis mon bureau

  • Il vous demandera un mot de passe qui sera requis lorsque vous vous connecterez à l'instance Oracle 11g. Veuillez fournir le mot de passe et cliquez sur suivant.

Source : depuis mon bureau

  • Après avoir fourni le mot de passe, le processus d'installation commencera. Une fois l'installation terminée, une icône de raccourci sera créée sur l'écran de votre bureau. Si vous ne pouvez pas le trouver, veuillez aller au démarrage de Windows et rechercher Oracle, vous devriez l'obtenir. Cliquez dessus et il vous ouvrira un client léger via un navigateur. Connectez-vous à l'instance. Veuillez noter que le nom d'utilisateur sera le même pour Oracle DB ie système. Le mot de passe sera celui que vous avez fourni lors de la configuration de la base de données.

Source: depuis mon bureau

  • Maintenant, une fois connecté, le tout premier écran que vous verrez ressemblera à ci-dessous:

Source: depuis mon bureau

  • Créons maintenant un tableau. Veuillez cliquer sur le module SQL dans l'écran ci-dessus et exécuter la requête ci-dessous.

Source: depuis mon bureau

  • Comme vous pouvez le voir, nous avons réussi à créer une table avec le nom Educba.

Connecter la base de données en Java

Il existe peu d'interfaces et de classes utilisées pour se connecter à une base de données et effectuer des opérations à l'aide de l'API JDBC.

Nous allons vous expliquer un par un, mais permettez-moi d'abord de vous présenter le programme ci-dessous:



Source: depuis mon bureau

Voici les interfaces que nous utiliserons pour nous connecter à la base de données et effectuer des opérations dessus:

  1. Driver Manager
  2. Lien
  3. Déclaration
  4. Ensemble de résultats
  5. Affirmation préparée

Examinons les opérations que nous pouvons effectuer dans le cadre d'une opération JDBC.

  1. Stocker les données d'une entité dans une base de données, c'est-à-dire l'opération de création
  2. Récupérer les données vers l'entité ou un bean à partir d'une base de données
  3. Mettre à jour les données de l'entité ou du bean dans la base de données
  4. Supprimez ou supprimez les données de l'entité ou d'un bean de la base de données.

Quelle que soit l'opération que nous effectuons, certaines étapes de base resteront les mêmes:

1. Chargez le pilote.

Class. forName ("oracle.jdbc.driver.OracleDriver");

2. Créez une chaîne URL

String url="jdbc:oracle:thin:@172:.26.132.40:1521:orclilp";

3. Utilisez le gestionnaire de pilotes pour créer une connexion

con=DriverManager.getConnection(URL, USERNAME, PASSWORD);

4. Utilisez la référence de connexion pour créer une instruction

stmt = conn.createStatement();

5. Utilisez une instruction pour exécuter la requête

6. Traitez l'ensemble de résultats (facultatif, dépend)

7. Libérez les ressources dans le bloc enfin.

Illustration

Comme nous utilisons la base de données Oracle dans notre illustration, nous devons avoir le pilote requis qui devrait être fourni par Oracle. La classe de pilote se présente généralement sous la forme d'un fichier jar avec le nom ojdbc14.jar. Ce pilote doit être importé dans votre programme java en tant que partie des «Bibliothèques référencées» s'il n'y figure pas.

Si vous avez installé Oracle 11g dans votre dossier C, il peut idéalement être trouvé dans le chemin ci-dessous: (S'il n'est pas là, il peut être facilement téléchargé à partir d'ici)

C: \ oraclexe \ app \ oracle \ product \ 10.2.0 \ server \ jdbc \ lib

Source: depuis mon bureau

De nombreux fichiers jar devraient être disponibles, mais ojdbc14.jar est le dernier. La même chose peut être utilisée pour notre but. Ce pot doit être ajouté au chemin de classe du projet. Veuillez vérifier l'image ci-dessous.

Source: depuis mon bureau

Créons une table d'artiste avec les attributs suivants: (Vous pouvez exécuter directement la ligne de commande SQL qui est fournie en tant que module séparé de l'édition Oracle Express. Mais vous devez d'abord vous connecter et vous pouvez exécuter la commande «connect» afin de vous connecter à la base de données.

Source: depuis mon bureau

Dans le cadre de cette illustration, nous allons créer trois classes java, à savoir Artist.java, CreateTable.java et ArtistManagementDao.java pour y parvenir.

Toujours dans la couche java, nous devons créer une classe appelée Artist bean. Cette classe devrait avoir des attributs de l'artiste avec le contexte ci-dessus. Cela ressemblera à ci-dessous:

Artist.java

Créons 2 autres classes java avec le nom ArtistManagementDao et CreateTable.java

ArtistManagementDao.java

package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ArtistManagementDao (
private final static String DRIVERNAME="oracle.jdbc.driver.OracleDriver";
private final static String URL="jdbc:oracle:thin:@LENOVO-PC:1521:XE";
private final static String USERNAME="System";
private final static String PASSWORD="Your DB password";
private Connection con =null;
public void addArtist(Artist a)
(
try (
Class.forName(DRIVERNAME);
String sql="insert into Artist1 values (?, ?)";
con=DriverManager.getConnection(URL, USERNAME, PASSWORD);
PreparedStatement pst=con.prepareStatement(sql);
pst.setString(1, a.getArtistID());
pst.setString(2, a.getArtistName());
pst.executeUpdate();
) catch (ClassNotFoundException e) (
// TODO Auto-generated catch block
System.out.println(e);
) catch (SQLException e) (
System.out.println(e);
)
)
)

CreateTable.java

package com;
import java.sql.*;
public class CreateTable(
static final String DB_URL = "jdbc:oracle:thin:@LENOVO-PC:1521:XE";
static final String USER = "System";
static final String PASS = "Your DB Password";
public static void main(String() args) (
Connection conn = null;
Statement stmt = null;
try(
ArtistManagementDao am=new ArtistManagementDao();
Artist a=new Artist();
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Connecting to a selected database…");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected to database successfully");
System.out.println("Creating table");
stmt = conn.createStatement();
//ARTIST TABLE
String sql = "CREATE TABLE Artist3 " +
"(ArtistID varchar2(5) primary key not NULL, " +
" ArtistName varchar2(25))";
stmt.executeUpdate(sql);
System.out.println("Created table in given database…");
a.setArtistId("abc");
a.setArtistName("ankit");
am.addArtist(a);
System.out.println("\nArtistID="+a.getArtistID()+"\nArtistName="+a.getArtistName());
)catch(SQLException se)(
se.printStackTrace();
)catch(Exception e)(
e.printStackTrace();
)finally(
try(
if(stmt!=null)
conn.close();
)catch(SQLException se)(
)
try(
if(conn!=null)
conn.close();
)catch(SQLException se)(
se.printStackTrace();
)
)
)
)

Explication de CreateTable.java:

1. Nous avons d'abord créé l'URL DB qui doit avoir le nom de votre ordinateur, ainsi que le numéro de port DB (idéalement 1521), précédé de JDBC: oracle: thin: @. Ensuite, nous avons créé un nom d'utilisateur et un mot de passe afin de transmettre ces attributs pendant la connexion à la base de données. Il est fortement recommandé de crypter ces valeurs dans l'environnement de production.

2. Dans la classe CreateTable.java, nous avons créé un objet "am" et "a" de ArtistManagementDao.java et Artist.java respectivement.

3. Ensuite, nous avons essayé d'établir notre connexion en suivant les étapes que nous avons apprises précédemment en utilisant une instruction conn.

4. Ensuite, nous avons créé une table avec le nom Artist3 et mis à jour la base de données ou poussé cela vers la base de données en utilisant l'exécution de l'instruction.

5. Maintenant, si nous voulons attribuer des valeurs aux attributs, nous allons utiliser l'objet que nous avons créé pour la classe d'artiste et faire une note, ce n'est pas cette classe qui insérera la valeur dans la base de données, ce sera plutôt ArtistmanagementDao class. Nous avons déjà stocké des valeurs dans les attributs à partir de maintenant et nous verrons en classe de jour comment les envoyer à la base de données.

6. Enfin, nous avons utilisé l'objet "am" de ArtistManagementDao pour passer cet objet "a" à la méthode addArtist () de la classe java ArtistManagementDao.

7. Nous avons également utilisé pour essayer et attraper le bloc pour intercepter toutes les exceptions et les jeter.

ArtistManagementDao Explication:

1. La classe Dao nous aide à isoler la couche application / métier de la couche persistance. Il s'agit généralement de la base de données relationnelle.

2. Nous avons d'abord créé l'URL DB qui doit avoir le nom de votre ordinateur, ainsi que le numéro de port DB (idéalement 1521), précédé de JDBC: oracle: thin: @. Ensuite, nous avons créé un nom d'utilisateur et un mot de passe afin de transmettre ces attributs pendant la connexion à la base de données. Il est fortement recommandé de crypter ces valeurs dans l'environnement de production.

3. Dans la méthode addArtist, nous avons essayé d'établir notre connexion en suivant les étapes que nous avons apprises précédemment en utilisant une instruction conn.

4. Maintenant, nous avons utilisé la méthode d'insertion pour pousser les valeurs des attributs vers la base de données.

5. Dans l'instruction suivante, afin de tester, nous avons l'instruction get pour récupérer les valeurs de la base de données.

6. Nous avons également utilisé pour essayer et attraper le bloc pour intercepter toutes les exceptions et les jeter.

Articles recommandés

Cela a été un guide sur la façon de connecter la base de données en java. Ici, nous avons discuté de la façon de connecter la base de données en java ainsi que des interfaces et des classes utilisées pour connecter une base de données. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Qu'est-ce que SQL Server?
  2. Le Big Data est-il une base de données?
  3. Fonctionnement de JavaScript
  4. Questions d'entretiens chez Multithreading à Java