/**
 * ÀÌ ¼Ò½º´Â Spring ÇÁ·¹ÀÓ¿öÅ© ¿öÅ©ºÏ¿¡¼­ »ç¿ëÇÑ ¿¹Á¦ ¼Ò½ºÀÔ´Ï´Ù. 
 * ÀÌ ¼Ò½º´Â ¸ðµç °³¹ßÀÚµéÀÌ ÀÚÀ¯·Ó°Ô ¼öÁ¤ ¹× ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. 
 * ´Ü, ÀÌ ¼Ò½º¸¦ ±â¹ÝÀ¸·Î »õ·Î¿î ¾ÖÇÃ¸®ÄÉÀÌ¼ÇÀ» °³¹ßÇÒ °æ¿ì ÃâÃ³¸¦ ¸í½ÃÇØ ÁÖ½Ã¸é µË´Ï´Ù. 
 */
package net.javajigi.user.dao;

import java.util.List;

import net.javajigi.user.model.User;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class UserDAOHibernate extends HibernateDaoSupport implements UserDAO {

	public int insert(User user) throws DataAccessException {
		getHibernateTemplate().save(user);

		return 1;
	}

	public int update(User user) throws DataAccessException {
		getHibernateTemplate().update(user);

		return 1;
	}

	public int delete(String userId) throws DataAccessException {
		getHibernateTemplate().delete(findUser(userId));

		return 1;
	}

	public User findUser(String userId) throws DataAccessException {
		User user = (User) getHibernateTemplate().get(User.class, userId);

		return user;
	}

	public List findUserList() throws DataAccessException {
		return getHibernateTemplate().find("from User");
	}

	public boolean existedUser(String userId) throws DataAccessException {
		User user = (User) getHibernateTemplate().get(User.class, userId);
		
		if ( user == null ) {
			return false;
		} else {
			return true;
		}
	}
}
