⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagemanagerimpl.java

📁 本项目为电子留言系统
💻 JAVA
字号:
package org.yeeku.service.impl;

import org.yeeku.dao.*;
import org.yeeku.model.*;
import org.yeeku.exception.*;
import org.yeeku.service.*;
import org.yeeku.vo.*;
import org.yeeku.factory.*;

import java.util.List;
import java.util.ArrayList;
import org.hibernate.*;

/**
 * @author  yeeku.H.lee kongyeeku@163.com
 * @version  1.0
 * <br>Copyright (C), 2005-2008, yeeku.H.Lee
 * <br>This program is protected by copyright laws.
 * <br>Program Name:
 * <br>Date: 
 */
public class MessageManagerImpl implements MessageManager
{
	private UserDao userDao;
	private MessageDao messDao;

	public MessageManagerImpl()throws MessageException
	{
		try
		{
			userDao = (UserDao)DaoFactory.instance(null).getDao("userDao");
			messDao = (MessageDao)DaoFactory.instance(null).getDao("messageDao");			
		}
		catch (Exception e)
		{
			e.printStackTrace();
			throw new MessageException("初始化业务逻辑组件出现异常...");
		}

	}


	/**
	 * 创建一条消息
	 * @param title 新信息的标题
	 * @param content 新消息的内容
	 * @param userId 创建消息的用户Id
	 * @return 新创建消息的主键,如果创建失败,返回-1。
	 */
	public int createMessage(String title , String content , int userId)
		throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();
			User u = userDao.get(sess , userId);
			if ( u != null)
			{
				Message m = new Message();
				m.setTitle(title);
				m.setContent(content);
				m.setUser(u);
				messDao.save(sess , m);
				tx.commit();
				return m.getId();
			}
			tx.commit();
			return -1;
		}
		catch (Exception e)
		{
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("添加消息出现异常");
		}
		finally
		{
			sess.close();
		}
	}

	/**
	 * 创建一个用户
	 * @param user 新创建用户的用户名
	 * @param pass 新创建用户的密码
	 * @return 新创建用户的主键
	 */
	public int createUser(String user , String pass)
		throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();

			if (userDao.findByName(sess , user) != null)
				throw new MessageException("该用户名已经存在");
			User u = new User();
			u.setName(user);
			u.setPass(pass);
			userDao.save(sess, u);
			tx.commit();
			return u.getId();
		}
		catch (Exception e)
		{
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("注册用户出现异常");
		}
		finally
		{
			sess.close();
		}
	}

	/**
	 * 验证用户名是否可用,本系统不允许用户名重复
	 * @param user 需要验证的用户名
	 * @return 该用户名不重复,可用,返回true,否则返回false
	 */
	public boolean valid(String user)
		throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();
			if (userDao.findByName(sess, user) == null)
			{
				tx.commit();
				return true;
			}
			tx.commit();
			return false;
		}
		catch (Exception e)
		{
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("验证用户名出现异常");
		}
		finally
		{
			sess.close();
		}
	}

	/**
	 * 验证用户登录是否成功
	 * @param user 登录所用的用户名
	 * @param pass 登录所用的密码
	 * @return 登录成功,返回用户的id,否则返回-1.
	 */
	public int login(String user , String pass)
		throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();
			User u = userDao.findByName(sess , user);
			if (u != null && u.getPass().equals(pass))
			{
				tx.commit();
				return u.getId();
			}
			tx.commit();
			return -1;

		}
		catch (Exception e)
		{
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("处理登录出现异常");
		}
		finally
		{
			sess.close();
		}
	}


	/**
	 * 根据消息ID返回消息
	 * @param id 消息ID
	 * @return 指定ID对应的消息
	 */
	public MessageBean getMessage(int id)
		throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();
			Message m = messDao.get(sess , id);
			if (m != null)
			{
				tx.commit();
				return new MessageBean(0 , m.getTitle() , m.getContent() , m.getUser().getId() , m.getUser().getName());
			}
			tx.commit();
			return null;

		}
		catch (Exception e)
		{
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("获取消息内容出现异常");
		}
		finally
		{
			sess.close();
		}
	}

	/**
	 * 返回特定页面所有消息
	 * @param pageNo 指定页码
	 * @return 指定页的全部消息
	 */
	public List<MessageBean> getAllMessageByPage(int pageNo)
		throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();

			List ml = messDao.findAllByPage(sess , pageNo , MESSAGE_PAGE_SIZE);
			if (ml != null && ml.size() > 0)
			{
				List<MessageBean> result = new ArrayList<MessageBean>();
				for (Object obj : ml)
				{
					Message me = (Message)obj;
					result.add(new MessageBean(me.getId() , me.getTitle(), null , 0 , me.getUser().getName()));
				}
				tx.commit();
				return result;
			}
			tx.commit();
			return null;
		}
		catch (Exception e)
		{
			tx.rollback();
			e.printStackTrace();
			throw new MessageException("获取消息内容出现异常");
		}
		finally
		{
			sess.close();
		}
	}

	/**
	 * 获取消息数量
	 * @return 消息的数量
	 */
	public int getMessageCount()throws MessageException
	{
		Session sess = null;
		Transaction tx = null;
		try
		{
			sess = SessionFactoryBuilder.instance().getSessionFactory().openSession();
			tx = sess.beginTransaction();
			int result = (int)messDao.findCount(sess);
			tx.commit();
			return result;
		}
		catch (Exception e)
		{
			tx.rollback();
			throw new MessageException("获取试题数量时出现异常,请重试!");
		}
		finally
		{
			sess.close();
		}
	}

	/**
	 * 根据每页记录数,总记录数获取总页数
	 * @param count 总记录数
	 * @param pageSize 每页显示的记录数
	 * @return 计算得到的总页数
	 */
	public int getPageCount(int count , int pageSize)
	{
		return (count + pageSize - 1 ) / pageSize;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -