📄 messagemanagerimpl.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 + -