BaseDao:
public class BaseDao {
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource//注入HibernateTemplate
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
}
HibernateTemplate 不是自己的类,用不了annotaion
beans.xml加上hibernateTemplate:记得要加上sessionFactory
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
GroupHibernateDao:
@Repository("groupHibernateDao")
public class GroupHibernateDao extends BaseDao implements IGroupDao {
@Override
public void add(Group group) {
// TODO 自动生成的方法存根
this.getHibernateTemplate().save(group);
}
@Override
public Group load(int id) {
// TODO 自动生成的方法存根
return (Group)this.getHibernateTemplate().load(Group.class, id);
}
}
UserHibernateDao:
@Repository("userHibernateDao")
public class UserHibernateDao extends BaseDao implements IUserDao {
private IGroupDao groupHibernateDao;
public IGroupDao getGroupHibernateDao() {
return groupHibernateDao;
}
@Resource
public void setGroupHibernateDao(IGroupDao groupHibernateDao) {
this.groupHibernateDao = groupHibernateDao;
}
@Override
public void update(User user) {
// TODO 自动生成的方法存根
this.getHibernateTemplate().delete(user);
}
@Override
public void delete(int id) {
// TODO 自动生成的方法存根
User u=load(id);
this.getHibernateTemplate().delete(u);
}
@Override
public User load(int id) {
// TODO 自动生成的方法存根
return (User)this.getHibernateTemplate().load(User.class, id);
}
@SuppressWarnings("unchecked")
@Override
public List<User> list(String sql, Object[] args) {
// TODO 自动生成的方法存根
Query<User> q=this.getHibernateTemplate().getSessionFactory().getCurrentSession().createQuery(sql);
if(args!=null) {
for(int i=0;i<args.length;i++) {
q.setParameter(i, args[i]);
}
}
return q.list();
}
@Override
public void add(User user, int gid) {
// TODO 自动生成的方法存根
Group group=groupHibernateDao.load(gid);
user.setGroup(group);
this.getHibernateTemplate().save(user);
}
}