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列)。

时间: 2024-11-05 15:47:14

Hibernate单表操作(四)——组件属性的相关文章

hibernate_06_单表操作_组件属性

什么是组件属性? 比如address是students的其中一个属性,而address又有三个属性:邮编.电话和地址.address就是hibernate的组件属性. 首先建立Address类: 1 package com.imooc.hibernate; 2 3 public class Address { 4 5 private String postcode; //邮编 6 private String phone; //电话 7 private String address; //地址

【Hibernate】(3)Hibernate单表操作

1. 单一主键 这个是在我们生成的Student.hbm.xml中配置的: <hibernate-mapping> <class name="com.thr.bean.Student" table="STUDENT"> <id name="id" type="int"> <column name="ID" /> <generator class=&quo

Hibernate单表操作(二)——基本类型

转载请注明:http://blog.csdn.net/uniquewonderq 基本类型表单列表: 还有另外一张表 以上这些属性可以在 hbm.xml的文档中的type类型进行更改.

Hibernate单表操作(六)——查询记录get()与load()方法区别

转载请注明:http://blog.csdn.net/uniquewonderq 在上一次的案例中,通过get或者load方法得到的结果一样. 既然得到的结果一样, 那么  get和load方法查询记录的区别是什么呢? 区别一: 在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句,发出selelct语句,去查找这个记录或者说对象,返回本身的持久化对象. load方法会在调用后返回一个代理对象. 该代理对象只保存了实体对象的主键id,直到真正使用对象的非主键属性时才会发出sql

Hibernate单表操作(三)——对象类型

转载请注明:http://blog.csdn.net/uniquewonderq 对象类型: Mysql不支持标准SQL的CLOB类型,在Mysql中使用TEXT,MEDIUMTEXT及LONGTEXT类型来表示长度超过 255的长文本数据. 下面看一个例子来演示: @Test public void testWriteBlob() throws Exception {//写入二进制数据 Students s=new Students(6,"wonderq","男"

Hibernate单表操作(一)——单一主键

assigned由java应用程序负责生成.(手工赋值) native由底层数据库自己主动生成标识符,假设是MySQL就是increment,假设是oracle就是sequence.等等.

hibernate单表映射

什么是Hibernate? ORM:object relationship mapping对象关系映射 hibernate是java领域的一款开源的ORM框架技术. hibernate是对jdbc进行了非常轻量级的对象封装. 1.开发工具:Eclipse Standard Kepler Hibernate Tools for eclipse Plugins Hibernate Tools是由JBoss推出的一个Eclipse综合开发工具插件,该插件可以简化ORM框架Hibernate,以及JBo

Hibernate学习笔记(一)--&gt;数据库单表操作

Hibernate框架是一个全ORM映射框架,是一个非常流行的数据库操作框架之一,现在比较流行的还有MyBatis半ORM映射框架 在MyEclipse IDE开发工具中,可以很轻松的搭建Hibernate框架. 一.搭建一个项目 1.首先在MyEclipse中搭建一个web项目. 2.选中项目右键-->myeclipse-->Project Facets-->找到hibernate.这样就为项目添加了hibernate支持 3.打开hibernate.cfg.xml配置文件,在可视化编

09-hibernate单表操作(1)

1,单一主键 2,基本类型 3,对象类型 4,组件属性 5,单表操作 单一主键 常用生成策略: assigned 有程序员生成(手工) native 由数据库底层,如果是mysql是increment,如果是Oracle是sequence. 测试assigned :代码手动给他赋值,不给ID赋值 import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.