创建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访问、操作对象,进而实现对
数据库的操作。