Hibernate组合映射关系
1:建CUSTOMERS表:代码如下:
Sql代码
create table `test`.`customers`(
`ID` bigint default '' not null,
`NAME` varchar(16),
`HOME_PROVINCE` varchar(16),
`HOME_CITY` varchar(16),
`HOME_STREET` varchar(16),
`HOME_ZIPCODE` varchar(16),
`COM_PROVINCE` varchar(16),
`COM_CITY` varchar(16),
`COM_STREET` varchar(16),
`COM_ZIPCODE` varchar(16),
primary key (`ID`)
);
2:建Customers类:代码如下:
Java代码
package com.hp.pojo;
public class Customers {
private Long id;
private String name;
private Address homeAddress;
private Address comAddress;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getHomeAddress() {
return homeAddress;
}
public void setHomeAddress(Address homeAddress) {
this.homeAddress = homeAddress;
}
public Address getComAddress() {
return comAddress;
}
public void setComAddress(Address comAddress) {
this.comAddress = comAddress;
}
}
3,Address类,代码如下
Java代码
package com.hp.pojo;
public class Address {
private String province;
private String city;
private String street;
private String zipcode;
private Customers customers;
public Customers getCustomers() {
return customers;
}
public void setCustomers(Customers customers) {
this.customers = customers;
}
public Address(String province, String city, String street, String zipcode) {
this.province = province;
this.city = city;
this.street = street;
this.zipcode = zipcode;
}
public Address() {
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
}
4,customers.hbm.xml配置文件
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.hp.pojo.Customers" table="customers">
<id name="id" column="id" type="long">
<generator class="increment"></generator>
</id>
<property name="name" column="NAME" type="string"></property>
<component name="homeAddress" class="com.hp.pojo.Address">
<parent name="customers"/>
<property name="province" column="HOME_PROVINCE" type="string"></property>
<property name="street" column="HOME_STREET" type="string"></property>
<property name="city" column="HOME_CITY" type="string"></property>
<property name="zipcode" column="HOME_ZIPCODE" type="string"></property>
</component>
<component name="comAddress">
<parent name="customers"/>
<property name="province" column="COM_PROVINCE" type="string"></property>
<property name="street" column="COM_STREET" type="string"></property>
<property name="city" column="COM_CITY" type="string"></property>
<property name="zipcode" column="COM_ZIPCODE" type="string"></property>
</component>
</class>
</hibernate-mapping>
5,测试
Java代码
Session session = HibernateSessionFactory.getSession();
Address homeAddress= new Address("fj","sw","nk","323");
Address comAddress= new Address("gd","sz","ns","111");
Customers customers = new Customers();
customers.setName("hp");
customers.setHomeAddress(homeAddress);
customers.setComAddress(comAddress);
session.save(customers);
session.beginTransaction().commit();
Hibernate组合映射关系
最新推荐文章于 2024-07-14 22:18:32 发布