Zéro, à propos de l'hibernate
L'hibernate signifie l'hibernation, qui fait référence à l'hibernation des animaux, mais l'hibernate discuté dans cet article n'a rien à voir avec l'hibernation, mais est un membre du cadre SSH2 à discuter ensuite. Hibernate est un projet open source. Il s'agit d'un cadre de modèles relationnels d'objets et a une encapsulation très légère de JDBC. Les programmeurs peuvent utiliser la réflexion sur la programmation d'objets pour se développer pendant le développement.
Télécharger l'adresse: http://hibernate.org/orm/downloads/
Remarque: La différence entre le poids léger et le poids lourd. L'ensemble de cadre léger est plus petit et simple à utiliser, et est facile à tester et a une efficacité de développement élevée. L'ensemble du cadre des poids lourds est plus grand et le processus commercial de l'emballage interne est plus compliqué et difficile à tester, comme les entretoises.
Modèle relationnel d'objet:
Hibernate met en œuvre la cartographie des modèles relationnels d'objets. Lors de la programmation, les programmeurs peuvent utiliser directement le modèle d'objet pour faire fonctionner la base de données. Il résume léger JDBC et encapsule également les instructions SQL pour les opérations de base de données, qui sont simples à utiliser. Bien qu'il ait de nombreux avantages, il sera difficile de régler à l'aide de déclarations avec les caractéristiques de la base de données, telles que les procédures stockées, etc.
Pour les avantages et les inconvénients de l'hibernate:
(1) Avantages
A. Améliorer la productivité;
B. rendre le développement plus objectivé (décalage d'impédance);
C. portabilité;
D. Pas d'invasivité et ne soutient la transparence et la persistance.
(2) Inconvénients
A. Les déclarations utilisant les caractéristiques de la base de données seront difficiles à régler;
B. Il y a des problèmes avec les mises à jour de données à grande échelle;
C. Il existe un grand nombre de fonctions de requête statistique dans le système.
2. Exemple d'hibernate
L'article ci-dessus fournit quelques interprétations préliminaires de l'hibernate. Avec la théorie, il y a certainement plus de pratique. Vous ne comprenez pas sa commodité sans utiliser d'hibernate. C'est comme une personne qui aime boire des goûts de Moutai pour la première fois. Ce n'est qu'après l'avoir utilisé que vous pouvez le comprendre plus profondément.
L'exemple suivant utilise la base de données MySQL. Une base de données nommée hibernate_first est créée dans MySQL. Une table utilisateur est créée via le fichier de mappage HiberNate à l'aide de la méthode de programmation d'objets et ajouter des informations à la table utilisateur.
Étapes spécifiques:
(1) créer une application Java normale;
(2) Ajoutez le package JAR de Hibernate. Lorsque vous ajoutez le package JAR, vous devez introduire Hibernate.jar, des packages JAR tiers référencés par Hibernate et des packages JAR connectés à Hibernate et MySQL.
(3) Ajouter le fichier de configuration de la connexion de la base de données hibernate.cfg.xml.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Hibernate-Configuration Public "- // Hibernate / Hibernate Configuration DTD 3.0 // en" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibberne-configuration> <Session-factory> <propriété name = "hibernate.connection.driver_class"> com.mysql.jdbc.driver </ propriété> <propriété name = "hibernate.connection.url"> jdbc: mysql: // localhost: 3306 / hibernate_first </ propriété> <propriété name = "hibernate.connection.username"> root </ propriété> <propriété name = "hibernate.connection.password"> ab12 </ propriété> <! - Dialect: dialect, l'API sous-jacent encapsulé, similaire à l'exécution, convertit la base de données en langue correspondante dans la configuration -> <propriété name = "hibernate.dialect"> org.hibernate.dialect.mysqldialect </ propriété> <! - Définissez l'opération d'affichage des données sur la base de données -> <propriété name = "hibernate.format_sql"> true </ propriété> <mapping name = "hibernate.format_sql"> true </ propriété> <mapping ressource = "com / hibernate / user.hbm.xml" /> </ session-factory> </ hibernate-configuration>
(4) Créer le nom de la classe d'entité comme user.java
package com.hibernate; Importer java.util.date; classe publique User {private String id; public String getID () {return id; } public void setid (String id) {this.id = id; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public String getPassword () {return mot de passe; } public void setPassword (String Motword) {this.password = mot de passe; } public Date getcreatetime () {return CreateTime; } public void setCreateTime (date CreateTime) {this.createtime = CreateTime; } public Date GetExpiretime () {return Expiretime; } public void setExpiretime (date Expiretime) {this.expiretime = Expiretime; } nom de chaîne privée; mot de passe de chaîne privé; Date privée CreateTime; expiration privée; } (5) Créez le fichier de mappage user.hbm.xml de la classe d'entité utilisateur, complétez le mappage de la classe d'entité et ajoutez le fichier dans le fichier hibernate.cfg.xml.
<? xml version = "1.0"?> <! Doctype Hibernate-Mapping public "- // Hibernate / Hibernate Mapping Dtd 3.0 // en" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <! -> <hibernate-mapping> <class name = "com.hibernate.user"> <id name = "id"> <générateur /> </ id> <propriété name = "name" /> <propriété name = "mot de passe" /> <propriété name = "CreateTime" /> <propriété name = "Expiretime" /> </ class> </ HiberNate-Mapping>
(6) Écrivez Exportdb.java et convertissez le fichier de mappage en DDL correspondant.
package com.hibernate; import org.hibernate.cfg.configuration; import org.hibernate.tool.hbm2ddl.schemaExport; classe publique ExportDB {public static void main (String [] args) {// Déclare d'abord le fichier de configuration // la lecture par défaut Hibernate.cfg.xml Configuration du fichier cfg = new Configuration (). Configure (); // Exporter le fichier XML Read vers DDL SchemaExport export = new SchemaExport (CFG); export.create (true, true); }} Exécutez la classe ExportDB pour compléter la création de la table de base de données. La vue après affichage de l'opération spécifique dans CMD est la suivante:
L'exemple ci-dessus termine uniquement le fonctionnement de la connexion à la base de données et de la création de tables dans la base de données. Après avoir créé le tableau, vous devez ajouter des données à la table, créer un client de classe client et ajouter de nouvelles informations utilisateur à la table utilisateur. Le code spécifique est le suivant:
package com.hibernate; Importer java.util.date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.configuration; classe publique Client {public static void main (String [] args) {// lire hibernate.cfg.xml Configuration du fichier cfg = new configuration (). configure (); // Créer SessionFactory, qui équivaut à un miroir de base de données. Étant donné que SessionFactory est un miroir, il est préférable de le créer une fois / généralement de filetage. SessionFactory Factory = CFG.BuildSessionFactory (); // Session de session de session récupérée = null; essayez {session = factory.opencession (); // Open Transaction Session.beginTransaction (); Utilisateur utilisateur = nouveau utilisateur (); user.setName ("Zhang San"); user.setpassword ("123"); user.setCreateTime (new Date ()); // Enregistrer l'objet utilisateur session.save (utilisateur); // commit transaction session.getTransaction (). Commit (); } catch (exception e) {e.printStackTrace (); // Imprimer le message d'erreur // Session de transaction de rollback.getTransaction (). Rollback (); } enfin {if (session! = null) {if (session.isopen ()) {// close session session.close (); }}}}}}}}} Afficher les informations ajoutées dans MySQL comme indiqué dans la figure suivante:
Les informations de l'opération ci-dessus ont été écrites dans la base de données. Après avoir enregistré les données dans la base de données, les lignes correspondantes sont générées dans la base de données. Cependant, il n'a pas encore été sauvé. Au lieu de cela, il existe des lignes de données correspondantes dans la base de données. Les données sont soumises à la base de données une fois la soumission de transaction à l'aide de la session terminée.