Hibernate的dynamic-insert和dynamic-update的使用
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某少部分字段,应该在配置文件的
如有这样一张表:create table hbtest(id int,val1 varchar2(100),val2 varchar2(100));
1,在 dynamic-insert没有设置的时候
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做更新操作.

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

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

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.

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

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)

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

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

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
