Hibernate学习:单向多对一关联
























以下是代码演示:



public class District:

package com.zuxia.yc42.po;

/**
 * 区域
 * @author Bamboo
 *
 */
public class District {
	private Integer dsId;
	private String dsName;
	
	public Integer getDsId() {
		return dsId;
	}
	public void setDsId(Integer dsId) {
		this.dsId = dsId;
	}
	public String getDsName() {
		return dsName;
	}
	public void setDsName(String dsName) {
		this.dsName = dsName;
	}
}


public class Street:

package com.zuxia.yc42.po;

/**
 * 区域下:街道
 * @author Bamboo
 *
 */
public class Street {
	private Integer stId;
	private District district;
	private String stName;
	
	
	public Integer getStId() {
		return stId;
	}
	public void setStId(Integer stId) {
		this.stId = stId;
	}
	public District getDistrict() {
		return district;
	}
	public void setDistrict(District district) {
		this.district = district;
	}
	public String getStName() {
		return stName;
	}
	public void setStName(String stName) {
		this.stName = stName;
	}
	

}


District.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
	<class name="com.zuxia.yc42.po.District" table="district">
		<id name="dsId" type="java.lang.Integer">
			<column name="dsId"></column>
			<generator class="sequence"></generator>
		</id>
		
		<property name="dsName" type="string">
			<column name="dsName"></column>
		</property>
	</class>
</hibernate-mapping>


Street.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
	<class name="com.zuxia.yc42.po.Street" table="street">
		<id name="stId" type="java.lang.Integer">
			<column name="stId"></column>
			<generator class="sequence"></generator>
		</id>
		
		<!-- many指的是当前对象:name="com.zuxia.yc42.po.Street"
			 one指的是:class="com.zuxia.yc42.po.District"
		 -->
		<many-to-one name="district" class="com.zuxia.yc42.po.District">
			<column name="dsId"></column>
		</many-to-one>
		
		<property name="stName" type="java.lang.String">
			<column name="stName"></column>
		</property>
	</class>
</hibernate-mapping>


hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
<hibernate-configuration>
  <session-factory>
  	<property name="dialact">org.hibernate.dialect.Oracle9iDialect</property>
  	<property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
  	<property name="connection.username">lfl</property>
  	<property name="connection.password">lfl</property>
  	
  	<property name="show_sql">true</property>
  	<property name="format_sql">true</property>
  	
  	<mapping resource="com/zuxia/yc42/po/District.hbm.xml"/>
  	<mapping resource="com/zuxia/yc42/po/Street.hbm.xml"/>
  </session-factory>
</hibernate-configuration>


Demo:

package com.zuxia.yc42.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.zuxia.yc42.po.Street;


public class Demo {

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		//1.加载配置文件
		 Configuration cfg = new Configuration().configure("/hibernate.cfg.xml");
		//2.创建SessionFactory类
		 SessionFactory factory = cfg.buildSessionFactory();
		//3.通过SessionFactory类获取Session对象
		Session session =  factory.openSession();
		//4.通过Session对象打开事务
		Transaction tx = session.beginTransaction(); 
		
		//5.通过Session对象操作数据表
//		UserInfo usInfo  = (UserInfo) session.get(UserInfo.class, 1);
//		System.out.println(usInfo.getUsName()+"\t"+usInfo.getUsSex());
		
		Street street = (Street) session.get(Street.class, 1);
		System.out.println(street.getStId()+"\t"+street.getStName()+"\t"+street.getDistrict().getDsId()+"\t"+street.getDistrict().getDsName());
		
		//6.提交事务
		tx.commit();
	}

}

该工程下载地址: http://download.csdn.net/detail/dragonbamboo261/6234635

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值