www.pudn.com > spring_struts_hibernate_messages.rar > UserManagerImpl.java


package com.bjsxt.messages.managers; 
 
import java.util.Date; 
import java.util.List; 
 
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 
 
import com.bjsxt.messages.MessageException; 
import com.bjsxt.messages.model.User; 
 
public class UserManagerImpl extends HibernateDaoSupport implements UserManager { 
 
	public void createUser(User user) { 
		user.setCreateTime(new Date()); 
		getHibernateTemplate().save(user); 
	} 
 
	public void deleteUsers(int[] ids) { 
		if(ids == null || ids.length == 0){ 
			return; 
		} 
		for(int i=0; i findAll(int currentUserId) { 
		 
		//HibernateTemplate的find方法,封装了session.createQuery()的操作,我们可以直接调用find方法, 
		//如果传递的HQL语句带动态参数的话,可以直接在第二个参数中传递这些值进去就可以了! 
		return getHibernateTemplate().find( 
				"from User u where u.id <> ? ", //第一个参数是HQL语句  
				currentUserId //第二个参数是HQL语句中需要传入的参数值 
			); 
	} 
 
	public User findUserById(int userId) { 
		 
		return (User)getHibernateTemplate().load(User.class, userId); 
	} 
 
	public User searchUser(String name) { 
		 
		//对于那些不能通过HibernateTemplate来操作的数据,我们可以通过调用getSession()来使用Hibernate底层 
		//API来进行操作 
		return (User)getSession() 
			.createQuery("from User where name = ?") 
			.setParameter(0, name) 
			.uniqueResult(); 
	} 
 
	public User validate(String username, String password) 
			throws MessageException { 
		List users = getHibernateTemplate().find("from User where account = ?",username); 
		if(users == null || users.size() == 0){ 
			throw new MessageException("login.error.user_not_found","没有找到相应得用户"); 
		} 
		User user = (User)users.get(0); 
		if(!user.getPassword().equals(password)){ 
			throw new MessageException("login.error.invalid_password","输入密码错误"); 
		} 
		return user; 
	} 
 
}