Hibernate的七种映射关系之基本映射

来源:互联网 发布:淘宝直通车标题优化 编辑:程序博客网 时间:2024/06/03 06:13

说到关系,在这个世界无处不在,我们必须以某个关系的节点存在在这个世界网中。比如父子关系,师生关系,上下属关系甚至是危险关系。数据也是一样的,它的存在必为某其他节点做准备。

  Hibernate有七种映射关联,方向分为单向或双向,主要根据需求分析多和一的关联,分别为:

1、单向1-12、单向N-13、单向1-N4、单向N-N5、双向1-N6、双向N-N7、双向1-1  在学习这七种映射关联之前,首先要了解基本映射的一些知识和必备条件。  一、必备实体类,以*.java命名。    如Student.java文件
复制代码
 1 public class Student { 2     private int id; 3     private String name; 4     public int getId() { 5         return id; 6     } 7     public void setId(int id) { 8         this.id = id; 9     }10     public String getName() {11         return name;12     }13     public void setName(String name) {14         this.name = name;15     }16     17 }
复制代码

 

 

 

  二、必备配置文件,以*.hbm.xml命名。  了解hibernate.cfg.xml配置文件:  1、文档开头引入dtd文件,用来约束xml的命名为其制定了一套标准(提供了一套标签,好吧我承认这种理解有点土)。  
<!DOCTYPE hibernate-configuration PUBLIC    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

   2、配置数据库以及映射类的地址映射信息。

 

复制代码
 1 <hibernate-configuration> 2     <session-factory> 3         <!-- 数据库配置 --> 4         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 5         <property name="hibernate.connection.url">jdbc:mysql://localhost:3307/hibernate_one2many</property> 6         <property name="hibernate.connection.username">root</property> 7         <property name="hibernate.connection.password">123456</property> 8         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 9         <property name="hibernate.show_sql">true</property>10          11         <!-- 映射类的地址映射信息 -->12         <mapping resource="com/juyahong/hibernate/Student.hbm.xml"/>13         <mapping resource="com/juyahong/hibernate/Classes.hbm.xml"/>14     </session-factory>15 </hibernate-configuration>
复制代码

 

  三、映射文件,以*.hbm.xml命名。  如:Student.hbm.xml  通常我们的实体类可以映射成表,采用<class>标签映射。比如:
复制代码
1 <hibernate-mapping package="com.juyahong.hibernate">2     <class name="Student" table="t_student">3         <id name="id">4             <generator class="native"/>5         </id>6         <property name="name" length="30"/>7     </class>8 </hibernate-mapping>
复制代码
  如上面代码可知,实体类中的普通属性即不包括集合、自定义类和数组的属性,映射成了表字段,采用<property>标签映射。需要注意的是实体类的命名或属性不能和数据库的关键字重复,否则会出错,之前做高校平台-基础系统的时候就出现了这个问题。可以通过table="**" 或 column="**"来重命名。  有了以上的必备条件后,之后的博客就开始以学生管理系统为例分析七种的映射关联。
0 0
原创粉丝点击