专栏首页InvQ的专栏Hibernate单表操作(四)——组件属性

Hibernate单表操作(四)——组件属性

转载请注明: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列)。

如下所示:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何实现自己的ClassLoader

    我们自己实现一个ClassLoader,并指定这个ClassLoader的加载路径可以通过如下方式来实现;

    MickyInvQ
  • Hibernate入门篇(三)——编写第一个Hibernate例子

    转载请注明:http://blog.csdn.net/uniquewonderq

    MickyInvQ
  • 计算两点间的距离

    bestcoder上面的题目,我发现它有个bug就是A过的题并不能查看源代码,所以为了方便记录整理到CSDN的云上了咯。 还有就是很多题目,你实在不知道为什么...

    MickyInvQ
  • ISA指令集

    今天的内容来源于《计算机系统概论》的第4章,介绍的指令是作者根据x86指令简化设计的一个自称为LC-3(Little Computer-3 edition)的指...

    linxinzhe
  • Koa源码分析

    Koa 是一个类似于 Express 的Web开发框架,创始人也都是TJ。Koa 的主要特点是,使用了 ES6 的 Generator 函数,进行了架构的重新设...

    xiangzhihong
  • 【学术】将吴恩达的第一个深度神经网络应用于泰坦尼克生存数据集

    这篇文章包括了神经网络在kaggle泰坦尼克生存数据集上的应用程序。它帮助读者加深他们对神经网络的理解,而不是简单地执行吴恩达代码。泰坦尼克生存数据集就是可以随...

    AiTechYun
  • 通用数据权限的思考与设计

    如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:787707172...

    java架构师
  • 通用数据权限的思考与设计

    数据权限是指对系统用户进行数据资源可见性的控制,通俗的解释就是:符合某条件的用户只能看到该条件下对应的数据资源。那么最简单的数据权限大概就是:用户只能看到自己的...

    猿天地
  • 自己动手写一个简单的MVC框架(第二版)

      在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件。

    Edison Zhou
  • 高德地图画线、清除线与改变颜色

    画线-------是通过创建 new AMap.Polyline实例 并添加到地图上 polyline.setMap(this.GDMap);

    tianyawhl

扫码关注云+社区

领取腾讯云代金券