Mettez ici le diagramme de transition à trois états pour faciliter la fonction de la méthode d'analyse:
1.Session Save () Méthode
La session est l'interface la plus importante entre toutes les interfaces Hibernate, fournissant des méthodes pour enregistrer, mettre à jour, interroger et supprimer des données.
La méthode Save () de la session peut convertir les états temporaires ou libres en états persistants. Par exemple, enregistrez un objet client:
SessionFactory SessionFactory; Configuration Configuration = new Configuration (). Configure (); SessionFactory = Configuration.BuildSessionFactory (); session session = sessionfactory.openSESSE (); transaction tr = session.beginTransaction (); // 1. Créer un objet client Customer C1 = nouveau client (); c1.setid (new Long (1)); c1.setName ("test"); c1.setEmail ("[email protected]"); c1.setpassword ("123456"); c1.setAddress ("Paradise"); // 2. Appelez la méthode Save () de session pour persister le client Session.Save (C1); tr.Commit (); session.close ();La méthode sauve () fait principalement les trois choses suivantes:
(1) Mettez l'objet client temporaire créé par New dans le cache pour le faire persister.
(2) En même temps, selon le générateur OID défini dans le fichier de mappage de la relation d'objet, c'est-à-dire que la méthode de génération de clés principale génère un OID unique pour l'objet.
<! - Définissez la touche principale -> <idName = "id" colonnes = "id" type = "long"> <! - Méthode de génération de clé primaire -> <générateurClass = "incrément" /> </id>
Il y a une question dans cet endroit. Lors de la création d'un objet, si la méthode setID () génère une clé primaire pour la persistance de l'objet. En fait, ce n'est pas le cas. SEDID ne génère pas la clé primaire lors de notre définition, mais génère la clé principale en fonction de la méthode de génération de clé primaire configurée dans le fichier de mappage de la relation d'objet. Il peut être exécuté plusieurs fois plus et la clé primaire se développe d'elle-même. Vous pouvez voir plusieurs données de la base de données. La clé principale commence à partir de 1, vous pouvez donc savoir que setid ()
La clé primaire n'est pas définie, sinon la vérification de l'unicité de la clé primaire de la base de données ne sera pas possible.
Nous pouvons également définir manuellement la valeur de clé primaire. Nous devons surcharger la méthode Save (), utiliser la méthode de surcharge Save (C1, newlong (1)) et le définir manuellement à chaque fois.
(3) Planifiez d'exécuter l'instruction INSERT. Notez que l'instruction INSERT n'est pas exécutée immédiatement et que l'instruction INSERT ne sera exécutée que lorsque la session nettoie le cache. Tr.Commit () Transaction Commit.
2. Méthode Update () de la session
Transformez les objets libres d'état en objets persistants. Par exemple:
SessionFactory SessionFactory; Configuration configuration = new Configuration (). Configure (); sessionFactory = configuration.buildSessionFactory (); Session Session1 = SessionFactory.OpenSession (); Transaction tr1 = session1.begintransaction (); // 1. Créer un objet client Customer C1 = nouveau client (); c1.setid (new long (1)); c1.setName ("test"); c1.setemail ("[email protected]"); c1.setpassword ("123456"); c1.setAddress ("Paradise"); // 2. Call Session Save () Méthode pour persister la session d'objet client1.save (C1); tr1.commit (); session1.close (); // 3. Mettez à jour l'objet libre, recherchez les modifications et exécutez l'instruction de mise à jour Session Session2 = SessionFactory.Opensession (); Transaction tr2 = session2.begintransaction (); c1.setAddress ("Test Update"); Session2.Update (C1); tr2.Commit (); session2.close ();La mise à jour () de la session doit effectuer ce qui suit:
(1) Ajoutez l'objet client gratuit au cache de session pour devenir un objet persistant.
(2) Exécutez l'instruction de mise à jour. Tout comme SAVING () exécute l'instruction INSERT, il n'exécute pas immédiatement l'instruction de mise à jour. Lorsque le cache est effacé, l'objet client est assemblé dans une instruction de mise à jour.
Puis exécutez à nouveau.
Notez que même si le client n'a pas changé, par défaut, l'instruction de mise à jour sera assemblée lorsque le cache est effacé. S'il doit être défini pour changer, le fichier de mappage de la relation objet doit être défini.
3.Session SaveorUpDate ()
La méthode SaveorUpDate () contient les fonctions des méthodes Save () et Update (), et différentes méthodes sont appelées selon l'état du paramètre passé. Passer dans un objet temporaire pour appeler la méthode Save (), si vous transmettant un objet libre pour l'appeler
Méthode Update (). Renvoie l'objet persistant entrant. Par conséquent, chaque fois que nous n'avons besoin de passer dans l'objet, SaveorUpdate (), juge automatiquement l'état de l'état d'objet passé et appeler dynamiquement la méthode de traitement.
Comment cette méthode détermine-t-elle l'état de l'objet entrant? Lorsque l'une des conditions suivantes est remplie, c'est un état temporaire:
(1) L'OID de l'objet Java est nul, ce qui signifie que l'objet n'est pas instancié autrement. Même s'il est instancié, c'est un objet qui a été supprimé et devient un état temporaire après la suppression de l'état libre. Dans ce cas, l'objet est un état temporaire.
(2) Si l'objet Java a un contrôle de version et que le numéro de version est nul, cela signifie qu'il n'y a pas de numéro de version de l'objet.
(3) Personnaliser l'intercepteur, appeler iSunsaved () et renvoyer la valeur est vraie.
4. Méthodes de charge () et get () de session
Les deux méthodes sont basées sur OID, chargeant un objet persistant de la base de données. L'objet persistant est placé dans le cache de session et l'objet persistant peut être utilisé en fonction des différents besoins.
La différence entre les deux:
Lorsqu'il n'y a pas d'enregistrement correspondant dans l'OID dans la base de données, le chargement () lance une exception et get () renvoie null.
5. Méthode Supprimer () de la session
Delete () Comme le nom l'indique, est utilisé pour supprimer des enregistrements correspondant aux objets Java de la base de données.
delete () Si un objet persistant est passé, assemblez une instruction de suppression et exécutez la suppression; Si un objet d'état libre est passé, Hibernate associe d'abord l'état libre à la session, devient un état persistant, puis génère la déclaration de suppression.
Effectuer la suppression.
Tous sont exécutés uniquement lorsque le cache de session est effacé.
Les exécutions ci-dessus sont toutes un objet, correspondant à un enregistrement.
Vous pouvez utiliser session.delete ("FromCustomerwhere ..."); pour supprimer plusieurs données après l'ajout de conditions.
SessionFactory SessionFactory; Configuration configuration = new Configuration (). Configure (); sessionFactory = configuration.buildSessionFactory (); Session Session1 = SessionFactory.OpenSession (); Transaction tr1 = session1.begintransaction (); // 1. Créer un objet client Customer C1 = nouveau client (); c1.setid (new long (1)); c1.setName ("test"); c1.setemail ("[email protected]"); c1.setpassword ("123456"); c1.setAddress ("Paradise"); // 2. Appelez la méthode Save () de session pour persister la session d'objet client1.save (C1); tr1.commit (); session1.close (); // 3. Associez l'objet d'état libre à la session, effacez le cache après la persistance et exécutez l'instruction Supprimer; Mettez-le dans l'état persistant pour le supprimer directement; Session Session2 = SessionFactory.OpenSession (); Transaction tr2 = session2.begintransaction (); Session2.Delete (C1); tr2.Commit (); session2.close (); Résultat de l'exécution, sortie de la console:
Hibernate: sélectionnez Max (ID) auprès des clients
Hibernate: Insérez dans les clients (nom, e-mail, mot de passe, téléphone, adresse, sexe, est_married, description, image, anniversaire, register_time, id) (?
Hibernate: Supprimer des clients où id =?
Résumer
Ce qui précède est toute l'explication détaillée de la session Ajouter, la suppression, la modification et le code d'opération de recherche en hibernate, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!