转载请注明:http://blog.csdn.net/uniquewonderq
1.什么是组件属性呢?
它是指:实体类中的某个属性属于用户自定义的类的对象。
理解起来还是不容易:所以写点代码来说明问题:
首先添加一个地址类:
package Entity; //地址类 public class Address { private String postcode;//邮编 private String phone;//电话 private String address;//地址 public Address(){ } public Address(String postcode, String phone, String address) { this.postcode = postcode; this.phone = phone; this.address = address; } public String getPostcode() { return postcode; } public void setPostcode(String postcode) { this.postcode = postcode; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
其次再在 student.hbm.xml的映射文件中加入:
<component name="address" class="Address"> <property name="postcode" column="POSTCODE"/> <property name="phone" column="PHONE"/> <property name="address" column="ADDRESS"/> </component>
改变先前students类的构造方法:
public Students(int sid, String sname, String gender, Date birthday, Address address) { this.sid = sid; this.sname = sname; this.gender = gender; this.birthday = birthday; this.address=address; }
写测试方法:
public void testSaveStudents(){//保存学生用例对象 //生成地址对象 Address address=new Address("710024","15319728***","西安市"); //生成学生对象 Students s1=new Students(1,"张奇","男",new Date(),address); session.save(s1);//保存对象进入数据库,无须写sql语句 }
因为表单结构发生变化,所以还要将hibernate.cfg.xml中的
<property name="hbm2ddl.auto">update</property> 给为
<property name="hbm2ddl.auto">create</property>
测试结果就是在新建了一个表,相比原来的表结构,新增了3列。(那三列是Address类的对象,该类有三个属性,自然增了3列)。
时间: 2024-11-05 15:47:14