Travailler avec des bases de données en Java

Table des matières
Java En tant que langage polyvalent, outre les différentes fonctionnalités que nous pouvons réaliser, il nous permet également de travailler avec la persistance des données, pour cela nous pouvons établir une connexion avec les différents moteurs de Base de données qui existent sur le marché.
Ongle Base de données Cela peut être quelque chose d'aussi simple qu'un système de valeurs-clés dans un fichier texte brut, ainsi que des solutions plus complexes et modernes telles que des solutions non relationnelles, cela rend la possibilité de développer différents schémas de connexion une fonctionnalité obligatoire.
JDBC sont un ensemble de classes qui permettent Java établir des connexions avec les moteurs de base de données, cela nous permet d'obtenir les résultats des requêtes dans un objet appelé Ensemble de résultats.
Étant donné que chaque moteur est différent, il est probable que le Ensemble de résultats que nous recevons lui est propre, c'est pourquoi il ne nous convient pas de structurer notre application autour dudit objet.
Pour résoudre ce problème, nous pouvons utiliser ce qu'on appelle un objet d'accès, avec lequel nous pouvons gérer les différentes formes de notre Ensemble de résultats rendre votre application au sein de notre programme plus facile à mettre en œuvre et ainsi le développeur a moins de problèmes.
Le modèle de conception DAOLe Objet d'accès aux données ou alors DAO C'est un modèle de conception qui rassemble ce que nous avons expliqué au point précédent, cela nous oblige à créer une classe d'accès aux propriétés de notre Base de données. Pour faire ce travail, nous devons faire tout le travail JDBC et le contrôleur qui nous permet de nous connecter au moteur particulier que nous voulons, en outre, nous devons effectuer la mise en œuvre logique que nous expliquons pour éviter la dépendance à des composants spécifiques qui ne feraient que compliquer la migration vers un autre moteur de base de données.
La première chose que nous devons faire pour établir une connexion JDBC est d'identifier quel est le moteur auquel on veut faire la connexion puis d'obtenir les classes nécessaires pour ladite connexion, dans ce cas on va faire une connexion MySQL, ce moteur est léger, gratuit et multiplateforme, nous pouvons donc l'installer à la fois dans Windows, Linux ou Mac.
Connecteur / J est l'ensemble des cours proposés par l'équipe de développement de MySQL, avec eux nous pouvons faire JDBC travailler avec ce Base de données relationnel, afin de l'intégrer dans notre projet, nous devons suivre les étapes suivantes.
1- Il faut télécharger le fichier correspondant à notre plateforme, soit les fenêtres ou pour d'autres depuis le site officiel de MySQL Dans le lien suivant.

AGRANDIR

2- Dans ce tutoriel nous travaillerons sous Windows donc pour son implémentation dans nos exemples nous le ferons au moment de l'exécution pour plus de facilité, cependant lorsque nous téléchargeons le package nous l'installons pour le rendre disponible sur notre ordinateur.
3- Maintenant, nous allons tester que tout fonctionne correctement sur notre ordinateur, pour cela nous allons faire un petit code où nous verrons si connecteur / J a été chargé avec succès dans notre système, pour cela, nous utiliserons le code suivant :
 public class ConnectionTest {public static void main (String [] args) {try {Class c = Class.forName ("com.mysql.jdbc.Driver"); System.out.println ("Classe chargée :" + c.getName ()); } catch (ClassNotFoundException ex) {System.err.println (ex); }}} 

4- Pour exécuter cet exemple, nous devons inclure la dépendance, il est recommandé d'avoir le .pot dans le même chemin de notre fichier TestConexion.java. Avec cela couvert, nous allons compiler notre fichier, nous ouvrons une console et avec l'instruction java et en ajoutant le .pot au chemin de classe à l'exécution avec la commande -cp Nous pouvons le faire, voyons la ligne de commande :
 javac -cp mysql-connector-java-5.1.34-bin.jar ConnectionTest.java 

5- Enfin, pour exécuter notre fichier, il suffit d'exécuter l'instruction suivante :
java -cp mysql-connector-java-5.1.34-bin.jar TestConnection

Si nous avons un résultat comme le suivant dans notre console, nous pouvons commencer à travailler avec des opérations pour Base de données:

AGRANDIR

La prochaine étape que nous devons franchir est d'établir une connexion efficace avec notre Base de données, pour cela, nous devons en créer une avec au moins une table sur notre serveur local, de cette façon, nous pouvons effectuer des tests, pour faciliter les choses, nous créons une base de données appelée test et nous utilisons le script suivant pour créer la table et insérer des enregistrements de test, ceci pour accélérer le développement du tutoriel :

CREATE TABLE IF NOT EXISTS `users` (
`id` bigint (20) NON NULL AUTO_INCREMENT,
`nom` varchar (255) NON NULL,
`date` date NON NULL,
`state` int (11) NON NULL,
CLÉ PRIMAIRE (`id`)
) MOTEUR = InnoDB DEFAULT CHARSET = latin1 AUTO_INCREMENT = 3;
INSÉRER DANS `users` (` id`, `name`,` date`, `status`) VALUES
(1, 'Utilisateur 1', '2015-01-01', 1),
(2, 'Utilisateur 2', '2015-01-01', 1);

Maintenant dans le code suivant de Java nous allons nous concentrer sur l'établissement de la connexion avec le Base de données, pour cela avec un essayez le bloc de capture Nous validerons qu'il est efficace et sans erreurs, puis si la connexion a été établie nous imprimerons un message de réussite, voyons :
 importer java.sql.Connection; importer java.sql.DriverManager ; public class ConnectionTest {chemin de la chaîne finale statique privée = "jdbc: mysql: // localhost"; private static final String user = "notre utilisateur"; private static final String password = "notre mot de passe"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (chemin, utilisateur, mot de passe); System.out.println ("Connexion réussie"); } catch (Exception e) {e.printStackTrace (); }}} 

A partir de ce code, nous pouvons voir que nous devons importer deux bibliothèques du package java.sql, l'un est Connexion qui est en charge de gérer toutes les activités pour pouvoir communiquer avec la base de données et l'autre est Gestionnaire de périphériques qui est chargé de fournir la façon dont nous communiquerons avec elle. Si nous avons correctement suivi les étapes, nous devrions voir le message suivant lorsque nous exécutons notre exemple dans la console :

AGRANDIR

Nous avons tout prêt pour commencer à tester nos requêtes, pour cela nous aurons besoin de plusieurs choses, la première que nous avons déjà est l'objet qui fait le lien avec le Base de données, alors nous devrons importer les packages Déclaration Oui Ensemble de résultats avec lequel nous pouvons d'abord envoyer des requêtes puis obtenir la réponse, enfin nous passons par l'objet Ensemble de résultats où nous afficherons les données insérées dans le tableau et avant de fermer le programme, nous devons fermer chacun des objets que nous avons créés, de cette manière nous garantirons l'intégrité de nos données. Voyons le code qui montre ce qui est expliqué :
 importer java.sql.Connection; importer java.sql.DriverManager ; importer java.sql.ResultSet ; importer java.sql.Statement ; public class ConnectionTest {chemin de la chaîne finale statique privée = "jdbc: mysql: // localhost / test"; private static final String user = "notre utilisateur"; private static final String password = "notre mot de passe"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (chemin, utilisateur, mot de passe); Requête d'instruction = con.createStatement (); System.out.println ("Connexion réussie"); ResultSet result = query.executeQuery ("SELECT * FROM utilisateurs"); while (result.next ()) {Nom de la chaîne = result.getString ("nom"); Chaîne date = result.getString ("date"); System.out.println ("Nom : » + nom + « Date d'enregistrement : » + date); } result.close (); requête.close (); con.fermer (); } catch (Exception e) {e.printStackTrace (); }}} 

Il est important de mentionner que dans notre attribut route Nous l'avons modifié ainsi que le nom du Base de données appel test où nous devons créer notre table users, compiler notre fichier et l'exécuter, le résultat par console serait comme dans l'image suivante :

AGRANDIR

Après avoir observé l'exemple de la connexion et des requêtes à la base de données, nous pouvons voir que nous devons utiliser une figure appelée Préparer la déclaration cela facilite notre travail en laissant les requêtes préparées afin que nous puissions les exécuter plusieurs fois sans avoir à les construire encore et encore, pour atteindre cette dynamique, nous substituons les valeurs que nous devons changer pour les variables, puis lorsque nous exécutons le requête nous lui passons les valeurs réelles à utiliser.
avantageCela a plusieurs avantages, nous l'avons déjà dit, le premier est de pouvoir utiliser quelque chose sans le répéter, mais c'est aussi pour la sécurité, car cela nous permet de traiter les valeurs qui proviennent éventuellement de la saisie de l'utilisateur pour éviter une attaque sur notre Base de données, en plus de nous pouvons également faciliter la lisibilité de notre programme.
Dans l'exemple suivant, nous allons créer une requête avec Affirmation préparée, afin qu'il puisse être utilisé plusieurs fois au cours de notre programme. Voyons le code résultant :
 importer java.sql.Connection; importer java.sql.DriverManager ; importer java.sql.ResultSet ; importer java.sql.PreparedStatement ; public class PreparedStatementTest {chemin de la chaîne finale statique privée = "jdbc: mysql: // localhost / test"; private static final String user = "notre utilisateur"; private static final String password = "notre mot de passe"; public static void main (String [] args) {try {Connection con = DriverManager.getConnection (chemin, utilisateur, mot de passe); PreparedStatement query = con.prepareStatement ("SELECT * FROM users Where id =?;"); System.out.println ("Connexion réussie"); requête.setInt (1, 1); ResultSet result = query.executeQuery (); while (result.next ()) {Nom de la chaîne = résultat.getString ("nom"); Chaîne date = result.getString ("date"); System.out.println ("Nom : » + nom + « Date d'enregistrement : » + date); } result.close (); requête.close (); con.fermer (); } catch (Exception e) {e.printStackTrace (); }}} 

On remarque qu'en utilisant la méthode setInt Avec l'objet de requête, nous pouvons passer le paramètre nécessaire à la requête, ce qui nous permet de le détacher de l'exécution de la requête, gagnant ainsi en portabilité et en facilité de lecture. Pour finir, nous compilons et exécutons notre programme :

AGRANDIR

Avec cela, nous terminons ce tutoriel, car nous voyons les options avec lesquelles travailler Base de données dans Java Ils sont très intéressants car ils nous permettent d'intégrer flexibilité et polyvalence dans nos applications, le plus important est que si nous avons de l'expérience avec d'autres langages, il sera sûrement utilisé ici.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave