Maison >Java >javaDidacticiel >Introduction au mappage ORM à l'aide d'annotations
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 :
L'auteur utilise la base de données MySQL, donc les données importées Le package est le suivant :
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 :
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 }
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='1.0' encoding='UTF-8'?> 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>
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!