1.***************一的一方(customer)**********************************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--name:类全名,table:表的名称,catalog:数据库名称-->
<class name="hibernate_oneToMany.Customer" table="t_customer" catalog="exam">
<!--id描述主键-->
<id name="id" column="c_id" length="11">
<!--主键生成策略-->
<generator class="identity"></generator>
</id>
<!--使用property描述属性与字段的对应关系-->
<property name="name" column="c_name" length="20"></property>
<!--一个客户关联多个订单-->
<set name="orders" inverse="true" cascade="all"><!--inverse表示放弃维护,只在双向关联下有用-->
<key column="c_customer_id"></key>
<one-to-many class="hibernate_oneToMany.Order"/>
<!--
使用set描述在一的一方关联的多 Set<Order> name属性指的就是set集合名称,
key:描述的是多的一方产生的外键名称,要与多的一方定义的外键名称相同
-->
</set>
<!--测试一对两个多,已成功-->
<set name="books" inverse="true" cascade="all">
<key column="c_customer_book_id"></key>
<one-to-many class="hibernate_oneToMany.Book"/>
</set>
</class>
</hibernate-mapping>
2.***************多的一方(order)*******************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--name:类全名,table:表的名称,catalog:数据库名称-->
<class name="hibernate_oneToMany.Order" table="t_order" catalog="exam">
<!--id描述主键-->
<id name="id" column="o_id" length="11">
<!--主键生成策略-->
<generator class="identity"></generator>
</id>
<!--使用property描述属性与字段的对应关系-->
<property name="money" column="o_money"></property>
<property name="address" column="o_address" length="50"></property>
<!--多对一-->
<many-to-one name="customer" cascade="save-update" class="hibernate_oneToMany.Customer" column="c_customer_id"></many-to-one>
<!-- save-update
name属性描述的是Order中的一方的属性Customer customer,
class属性代表的是一方的属性,
column描述的是一对多,在多的一方产生外键名称,
cascade:级联操作,表示在保存这一方的时候也对另一方进行了操作
-->
</class>
</hibernate-mapping>
3.***********多的一方(book)***************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!--name:类全名,table:表的名称,catalog:数据库名称-->
<class name="hibernate_oneToMany.Book" table="t_book" catalog="exam">
<!--id描述主键-->
<id name="id" column="b_id" length="11">
<!--主键生成策略-->
<generator class="identity"></generator>
</id>
<!--使用property描述属性与字段的对应关系-->
<property name="name" column="b_name"></property>
<!--多对一-->
<many-to-one name="customer" cascade="save-update" class="hibernate_oneToMany.Customer" column="c_customer_book_id"></many-to-one>
</class>
</hibernate-mapping>
4.***********hibernate配置文件(仅供参考)********************
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--配置数据库连接的四个项-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///exam</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 设置连接提供者 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<!-- c3p0连接池的配置 -->
<property name="hibernate.c3p0.max_size">20</property> <!-- 最大连接池 -->
<property name="hibernate.c3p0.min_size">5</property> <!-- 最小连接数 -->
<property name="hibernate.c3p0.timeout">120</property> <!-- 超时 -->
<property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空闲连接 -->
<!--将向数据库发送的sql显示出来-->
<property name="hibernate.show_sql">true</property>
<!--格式化sql-->
<property name="hibernate.format_sql">true</property>
<!--自动创建表-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--hibernate方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!--配置hibernate的映射文件所在位置-->
<mapping resource="domain/User.hbm.xml"/>
<mapping resource="domain/Product.hbm.xml"/>
<!--一对多-->
<mapping resource="hibernate_oneToMany/Customer.hbm.xml"/>
<mapping resource="hibernate_oneToMany/Order.hbm.xml"/>
<mapping resource="hibernate_oneToMany/Book.hbm.xml"/>
</session-factory>
</hibernate-configuration>