五、创建DAO访问对象
1. 在src/com.jandar.service.dao新建IDAO.java接口,所有的DAO都继承该接口
package com.jandar.services.dao;
![]()
public interface IDAO
![]()
2. 在src/com.jandar.service.dao下新建IUserDAO.java接口
![]()
public interface IUserDAO extends DAO ...{
List getUsers();
User getUser(Integer userid);
void saveUser(User user);
void removeUser(Integer id);
}
该接口提供了访问对象的方法,
3. 在src/com.jandar.service.dao.hibernate下新建UserDAOHiberante.java
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import com.jandar.model.User;
import com.jandar.service.dao.IUserDAO;
![]()
public class UserDaoHibernate extends HibernateDaoSupport implements IUserDAO ...{
![]()
private Log log=LogFactory.getLog(UserDaoHibernate.class);
/**//* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#getUsers()
*/
![]()
public List getUsers() ...{
return getHibernateTemplate().find("from User");
}
![]()
/**//* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#getUser(java.lang.Long)
*/
![]()
public User getUser(Integer id) ...{
// TODO 自动生成方法存根
return (User) getHibernateTemplate().get(User.class,id);
}
![]()
/**//* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User)
*/
![]()
public void saveUser(User user) ...{
log.debug("xxxxxxx");
System.out.println("yyyy");
getHibernateTemplate().saveOrUpdate(user);
if(log.isDebugEnabled())
...{
log.debug("userId set to "+user.getId());
}
}
![]()
/**//* (非 Javadoc)
* @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long)
*/
![]()
public void removeUser(Integer id) ...{
Object user=getHibernateTemplate().load(User.class,id);
getHibernateTemplate().delete(user);
if(log.isDebugEnabled())...{
log.debug("del user "+id);
}
}
}
在这个类中实现了IUserDAO接口的方法,并且继承了HibernateDAOSupport类。这个类的作用是通过hibernate访问、操作对象,进而实现对数据库的操作。
