例:省市与城市之间的关系
Province.java
package www.csdn.net.blank.bean;
import java.io.Serializable;
public class Province implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
public Province() {
super();
// TODO Auto-generated constructor stub
}
public Province(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
City.java
package www.csdn.net.blank.bean;
import java.io.Serializable;
public class City implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Province province;
public City() {
super();
// TODO Auto-generated constructor stub
}
public City(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Province getProvince() {
return province;
}
public void setProvince(Province province) {
this.province = province;
}
}
Provice的配置文件Provice.hbm.xml
City的配置文件City.hbm.xml
//Hibernate 使用
元素来映射多对一关联关系 many-to-one属性:
* name:设定待映射的持久化类的名字。
* column:设定和持久化类的属性对应的表的外键。
* class:设定持久化类的属性的类型。
* not-null:是否允许为空。
Hibernate封装BaseDao接口实现增删查改
package www.csdn.net.blank.dao;
import java.io.Serializable;
import java.util.List;
@SuppressWarnings("rawtypes")
public interface BaseDao {
/**
* 保存实体对象
*
* @param entity
*/
public void saveObject(Object entity);
/**
* 更新实体对象
*
* @param entity
*/
public void updateObject(Object entity);
/**
* 删除实体对象
*
* @param entity
*/
public void deleteObject(Object entity);
/**
* 根据id删除实体对象
*
* @param clazz
* @param id
*/
public void deleteObjectById(Class clazz,Serializable id);
/**
* 根据id查询实体对象
*
* @param clazz
* @param id
* @return
*/
public Object loadObjectById(Class clazz, Serializable id);
/**
* 根据id查询实体对象
*
* @param clazz
* @param id
* @return
*/
public Object getObjectById(Class clazz, Serializable id);
/**
* 查询所有的操作
*
* @param clazz
* @return
*/
public List getObjects(Class clazz);
}
实现BaseDao接口的类BaseDaoImpl
package www.csdn.net.blank.dao.impl;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import www.csdn.net.blank.dao.BaseDao;
import www.csdn.net.blank.util.BaseHibernateDaoImpl;
@SuppressWarnings("rawtypes")
public class BaseDaoImpl extends BaseHibernateDaoImpl implements BaseDao {
@Override
public void saveObject(Object entity) {
// 获取session对象
Session session = getSessionObject();
// 打开事务
Transaction ts = session.beginTransaction();
try {
// 保存
session.save(entity);
// 提交事务
ts.commit();
} catch (Exception e) {
ts.rollback();
}
}
@Override
public void updateObject