Maison  >  Article  >  Java  >  Introduction au mappage ORM à l'aide d'annotations

Introduction au mappage ORM à l'aide d'annotations

零下一度
零下一度original
2017-07-23 14:18:111979parcourir

Au cours des deux dernières années, de plus en plus de projets ont utilisé des annotations pour le mappage ORM de certaines classes d'entités relativement stables, ce qui rend la programmation plus concise et simple. En fait, il n'y a pas beaucoup de changements dans le processus opérationnel entre l'utilisation d'annotations pour le mappage ORM et l'utilisation de XML pour le mappage. Les principales étapes sont : l'importation de packages, l'écriture de classes d'entités annotées, l'écriture de fichiers de configuration de base et l'écriture de classes de test.

Le code du projet a été téléchargé sur GitHub : Nom du projet : HibernateUseAnnotation

La structure entière du projet est la suivante :

1. Importer le package

 L'auteur utilise la base de données MySQL, donc les données importées Le package est le suivant :

2. Écriture des classes d'entités

Les annotations pour le mappage sont essentiellement en javax .persistence. *Définitions dans le package, les principales que j'utilise couramment sont les quatre suivantes :

L'annotation @Entity marque cette classe comme une entité.
L'annotation @Table spécifie le nom de la table devant contenir les données de cette entité. Si vous n'utilisez pas l'annotation @Table, hibernate utilisera par défaut le nom de la classe comme nom de table.
L'annotation @Id marque l'identifiant de cette entité.
L'annotation @Column précise les détails de la colonne de cet attribut ou champ. Si l'annotation @Column n'est pas spécifiée, le nom de la propriété sera utilisé par défaut comme nom de colonne.
 1 package com.rocky.domain; 2  3 import javax.persistence.Entity; 4 import javax.persistence.Id; 5 import javax.persistence.Table; 6  7 @Entity 8 @Table(name = "tb_user") 9 public class User10 {11     @Id12     private Integer uId;13     private String uName;14     private Integer uAge;15     public User()16     {17         super();18     }19     @Override20     public String toString()21     {22         return "User [uId=" + uId + ", uName=" + uName + ", uAge=" + uAge + "]";23     }24     public Integer getuId()25     {26         return uId;27     }28     public void setuId(Integer uId)29     {30         this.uId = uId;31     }32     public String getuName()33     {34         return uName;35     }36     public void setuName(String uName)37     {38         this.uName = uName;39     }40     public Integer getuAge()41     {42         return uAge;43     }44     public void setuAge(Integer uAge)45     {46         this.uAge = uAge;47     }48 }

3. Écrivez le fichier de configuration principal

Utilisez les fichiers de configuration annotés et le mappage XML. Les fichiers de configuration sont fondamentalement les mêmes, mais les attributs utilisés lors de l'introduction du mappage externe sont des attributs de classe plutôt que de ressources.

 1 <?xml version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3           "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5  6 <hibernate-configuration> 7     <session-factory> 8  9         <!--指定数据库的参数  -->10         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>11         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>12         <property name="hibernate.connection.url">jdbc:mysql://192.168.100.100:3306/test</property>13         <property name="hibernate.connection.username">root</property>14         <property name="hibernate.connection.password">1</property>15         16         <!--指定hibernate是否显式SQL语句及其格式化  -->17         <property name="hibernate.show_sql">true</property>18         <property name="hibernate.format_sql">true</property>19         20         <!--指定表的生成方式-即是否由hibernate自动创建表,其取值为:create-drop、21          create、validate、update-->22         <property name="hibernate.hbm2ddl.auto">update</property>23         24         <!--引入 ORM配置文件 -->25         <mapping class="com.rocky.domain.User"/>26     </session-factory>27 28 </hibernate-configuration>

4. Rédaction de cours de test

 1 package com.rocky.testdriver; 2  3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.Transaction; 6 import org.hibernate.cfg.Configuration; 7  8 import com.rocky.domain.User; 9 10 public class TestDriver11 {12 13     public static void main(String[] args)14     {15         // 加载配置文件16         Configuration cfg = new Configuration();17         cfg.configure();18         // 创建会话工厂19         SessionFactory factory = cfg.buildSessionFactory();20         // 获取非线程绑定会话21         Session session = factory.openSession();22         // 开启事务23         Transaction tx = session.beginTransaction();24         // 创建User对象25         User user = new User();26         user.setuId(1);27         user.setuName("rocky");28         user.setuAge(28);29 30         // 将数据插入数据库31         session.save(user);32 33         // 提交事务34         tx.commit();35         // 关闭会话36         session.close();37     }38 39 }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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