hibernate 组件(Component)映射

本文介绍了一个使用Hibernate框架进行对象关系映射(ORM)的简单示例,包括定义Teacher类及其地址组件Address类,并展示了如何通过Hibernate保存Teacher实例到数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、类Teacher
1 public class Teacher {
2     private int id;
3     private String name;
4     private String sex;
5     private Address address;
6         //省略get/set
7 }

2、类Teacher的组件 Address

1 public class Address {
2     private String addr1;
3     private String addr2;
4     private String addr3;
5     //省略get/set
6 }

3、Teacher.hbm.xml

 1 <hibernate-mapping package="cn.siggy.pojo">
 2     <class name="Teacher">
 3         <id name="id">
 4             <generator class="native"></generator>
 5         </id>
 6         <property name="name"/>
 7         <property name="sex"/>
 8         <!-- 组件 -->
 9         <component name="address" class="Address">
10             <property name="addr1"/>
11             <property name="addr2"/>
12             <property name="addr3"/>
13         </component>
14     </class>
15 </hibernate-mapping>

4、 测试

 1 @Test
 2     public void testSave() throws HibernateException, SerialException, SQLException{
 3         Session session = null;
 4         Transaction tx = null;
 5         try{
 6             session = HibernateUtil.getSession();
 7             tx = session.beginTransaction();
 8             Teacher t = new Teacher();
 9             t.setName("老裴");
10             t.setSex("男");
11             Address address = new Address();
12             address.setAddr1("西三旗");
13             address.setAddr2("西直门");
14             address.setAddr3("南六环");
15             t.setAddress(address);
16             
17             session.save(t);
18             
19             tx.commit();
20             
21         }catch (HibernateException e) {
22             if(tx!=null)
23                 tx.rollback();
24             e.printStackTrace();
25             throw e;
26         }finally{
27             HibernateUtil.closeSession();
28         }
29     }

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值