以下是代码演示:
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