Maison base de données tutoriel mysql Hibernate的dynamic-insert和dynamic-update的使用

Hibernate的dynamic-insert和dynamic-update的使用

Jun 07, 2016 pm 05:11 PM
hibernate

Hibernate在初始化的时候,默认按照配置为表预定义insert,delete,update,select(by id)的SQL语句放在session中,其中insert,update

Hibernate在初始化的时候,默认按照配置为表预定义insert,delete,update,select(by id)的SQL语句放在session中,其中insert,update,select操作都是对表的所有字段操作.如果在一个表有很多字段的时候,在做初次inser的时候有比较多的字段为空值,或者经常update某少部分字段,应该在配置文件的元素上将dynamic-insert和dynamic-update设置为true.其默认值都为false.

如有这样一张表:create table hbtest(id int,val1 varchar2(100),val2 varchar2(100));

1,在 dynamic-insert没有设置的时候


            Hbtest tbo = new Hbtest();
            tbo.setId(new Integer(2));
            tbo.setVal1("val1");

            sessionFactory.getCurrentSession().save(tbo);

某些字段为空做insert,hibernate会用全字段的insert sql语句,如下:

insert into HBTEST(VAL1, VAL2,ID) values(?, ?,?)

2,将dynamic-insert设置为true,同样的保存,hibernate会动态生成SQL语句,没有值的字段不会出现在insert语句中.


insert into HBTEST(VAL1, ID) values(?, ?)

3,在 dynamic-update没有设置的时候

            Hbtest tbo = (Hbtest) sessionFactory.getCurrentSession().load(Hbtest.class,new Integer(1));            
            tbo.setVal1("valXX");            
            tx.commit();

只更新部分字段,hibernate仍然对所有字段做更新:

update HBTEST set VAL1=?,VAL2=? where ID=?

4,同样的操作如果把设置为true的话,sql语句只包含更新的字段:update HBTEST set VAL1=? where ID=?

5,Hibernate这种动态SQLupdate的特性是利用在对象从数据库加载到hibernate session的时候保存了一份快照,做更新的时候与这个快照做比较,只更新改动过的值.

所以下面这种情况就会用全部字段进行更新:,不设值的字段会被更新成null.

            Hbtest tbo = new Hbtest();
            tbo.setId(new Integer(1));
            tbo.setVal1("val1ZZZ");
            sessionFactory.getCurrentSession().update(tbo);   
这种情况应该利用Hibernate提供的对SQL的支持,用SQL做更新操作.

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment intégrer Hibernate dans le projet SpringBoot Comment intégrer Hibernate dans le projet SpringBoot May 18, 2023 am 09:49 AM

Intégration d'Hibernate dans le projet SpringBoot Préface Hibernate est un framework ORM (Object Relational Mapping) populaire qui peut mapper des objets Java à des tables de base de données pour faciliter les opérations de persistance. Dans le projet SpringBoot, l'intégration d'Hibernate peut nous aider à effectuer plus facilement des opérations de base de données. Cet article présentera comment intégrer Hibernate dans le projet SpringBoot et fournira des exemples correspondants. 1.Introduire les dépendancesIntroduire les dépendances suivantes dans le fichier pom.xml : org.springframework.bootspring-boot-starter-data-jpam

Erreurs Java : erreurs de mise en veille prolongée, comment les gérer et les éviter Erreurs Java : erreurs de mise en veille prolongée, comment les gérer et les éviter Jun 25, 2023 am 09:09 AM

Java est un langage de programmation orienté objet largement utilisé dans le domaine du développement de logiciels. Hibernate est un framework de persistance Java populaire qui fournit un moyen simple et efficace de gérer la persistance des objets Java. Cependant, des erreurs Hibernate sont souvent rencontrées au cours du processus de développement, et ces erreurs peuvent entraîner une fin anormale du programme ou devenir instable. Comment gérer et éviter les erreurs Hibernate est devenu une compétence que les développeurs Java doivent maîtriser. Cet article présentera quelques Hib courants

Quelles sont les différences entre hiberner et mybatis Quelles sont les différences entre hiberner et mybatis Jan 03, 2024 pm 03:35 PM

Les différences entre hibernate et mybatis : 1. Méthode de mise en œuvre ; 2. Performances 3. Comparaison de la gestion des objets ; Introduction détaillée : 1. Méthode d'implémentation, Hibernate est une solution complète de mappage objet/relationnel qui mappe les objets aux tables de base de données, tandis que MyBatis oblige les développeurs à écrire manuellement des instructions SQL et ResultMap 2. Performances, Hibernate est possible en termes de vitesse de développement Plus rapide que ; MyBatis car Hibernate simplifie la couche DAO et ainsi de suite.

Quelle est la méthode de mappage des relations un-à-plusieurs et plusieurs-à-plusieurs dans Java Hibernate Quelle est la méthode de mappage des relations un-à-plusieurs et plusieurs-à-plusieurs dans Java Hibernate May 27, 2023 pm 05:06 PM

Hibernate un-à-plusieurs et plusieurs-à-plusieurs d'Hibernate est un excellent framework ORM qui simplifie l'accès aux données entre les applications Java et les bases de données relationnelles. Dans Hibernate, nous pouvons utiliser des relations un-à-plusieurs et plusieurs-à-plusieurs pour gérer des modèles de données complexes. Le un-à-plusieurs d'Hibernate Dans Hibernate, une relation un-à-plusieurs signifie qu'une classe d'entité correspond à plusieurs autres classes d'entités. Par exemple, une commande peut correspondre à plusieurs articles de commande (OrderItem), et un utilisateur (User) peut correspondre à plusieurs commandes (Order). Pour implémenter une relation un-à-plusieurs dans Hibernate, vous devez définir un attribut de collection dans la classe d'entité à stocker

Comment effectuer des opérations de mise à jour d'insertion groupée dans Hibernate ? Comment effectuer des opérations de mise à jour d'insertion groupée dans Hibernate ? Aug 27, 2023 pm 11:17 PM

Dans cet article, nous verrons comment effectuer une insertion/mise à jour groupée dans Hibernate. Chaque fois que nous exécutons une instruction SQL, nous le faisons en effectuant un appel réseau à la base de données. Désormais, si nous devons insérer 10 entrées dans la table de la base de données, nous devons alors effectuer 10 appels réseau. Au lieu de cela, nous pouvons optimiser les appels réseau en utilisant le traitement par lots. Le traitement par lots nous permet d'exécuter un ensemble d'instructions SQL en un seul appel réseau. Pour comprendre et mettre en œuvre cela, définissons notre entité - @EntitypublicclassParent{@Id@GeneratedValue(strategy=GenerationType.AUTO)

Obtenez une compréhension approfondie de la pile technologique du framework Java : explorez les frameworks Java courants tels que Spring MVC, Hibernate, MyBatis, etc. Obtenez une compréhension approfondie de la pile technologique du framework Java : explorez les frameworks Java courants tels que Spring MVC, Hibernate, MyBatis, etc. Dec 26, 2023 pm 12:50 PM

Pile technologique du framework Java : présentation des frameworks Java couramment utilisés, tels que SpringMVC, Hibernate, MyBatis, etc. Avec le développement continu de Java, de plus en plus de frameworks ont été développés pour simplifier le processus de développement. Parmi eux, SpringMVC, Hibernate, MyBatis, etc. sont l'un des frameworks les plus couramment utilisés dans le développement Java. Cet article présentera les concepts de base et l'utilisation de ces cadres pour aider les lecteurs à mieux comprendre et appliquer ces cadres. Commençons par présenter Sp

Introduction au framework Hibernate en langage Java Introduction au framework Hibernate en langage Java Jun 10, 2023 am 11:35 AM

Hibernate est un framework ORM open source qui lie le mappage des données entre les bases de données relationnelles et les programmes Java, facilitant ainsi l'accès des développeurs aux données de la base de données. L'utilisation du framework Hibernate peut réduire considérablement le travail d'écriture des instructions SQL et améliorer l'efficacité du développement et la réutilisabilité des applications. Présentons le framework Hibernate sous les aspects suivants. 1. Avantages du framework Hibernate : mappage objet-relationnel, masquage des détails d'accès à la base de données, réalisation du développement

Comment fonctionne le cache Hibernate de deuxième niveau ? Comment fonctionne le cache Hibernate de deuxième niveau ? Sep 14, 2023 pm 07:45 PM

La mise en cache permet de réduire les appels réseau de base de données lors de l'exécution de requêtes. Cache de niveau 1 et liaison de session. Il est implémenté implicitement. Le cache de premier niveau existe jusqu'à ce que l'objet de session existe. Une fois l’objet de session terminé/fermé, il n’y aura aucun objet mis en cache. Le cache de deuxième niveau fonctionne pour plusieurs objets de session. Il est lié à la fabrique de sessions. Les objets de cache de deuxième niveau sont disponibles pour toutes les sessions à l'aide d'une seule fabrique de sessions. Ces objets de cache prendront fin lorsqu'une fabrique de sessions spécifique sera fermée. Pour implémenter le cache de deuxième niveau, nous devons ajouter les dépendances suivantes pour utiliser le cache de deuxième niveau. <!--https://mvnrepository.com/artifact/net.sf.ehcache/ehcache--><de

See all articles