package com.hibernate.dao.impl;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import com.hibernate.dao.EmailDao;
import com.hibernate.po.Email;
/*
 * 实现类
 */
public class EmailDaoImpl implements EmailDao {
	private SessionFactory sessionFactory;

	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	// 根据当前用户和删除状态得到邮件
	public List<Email> getEmailsList(String nickname, String deletestatus) {
		List<Email> emailslist = null;
		Session session = sessionFactory.openSession();
		String hql = "from Email e where e.receivers='" + nickname
				+ "' and e.deletestatus='" + deletestatus + "'";
		Query query = session.createQuery(hql);
		emailslist = query.list();
		session.close();// 关闭Session,释放资源
		return emailslist;
	}

	// 获取用户昵称列表
	public List<String> getNicknamesList() {
		List<String> nicknamelist = null;
		Session session = sessionFactory.openSession();
		String hql = "select u.nickname from User u";
		Query query = session.createQuery(hql);
		nicknamelist = query.list();
		session.close();// 关闭Session,释放资源
		return nicknamelist;
	}

	// 发邮件
	public boolean insertEmail(Email email) {
		Session session = sessionFactory.openSession();
		Transaction tx = null;
		try {
			tx = session.beginTransaction();
			session.save(email);
			tx.commit();
			return true;
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();// 回滚事务
				return false;
			}
			e.printStackTrace();
		} finally {
			session.close();// 关闭Session,释放资源
		}
		return false;
	}

	// 永久删除邮件
	public boolean deleteEmail(int id) {
		Session session = sessionFactory.openSession();
		Transaction tx = null;
		try {
			String hql = "delete from Email e where e.id=" + id;
			tx = session.beginTransaction();
			Query query = session.createQuery(hql);
			int i = query.executeUpdate();
			if (i == 1) {
				tx.commit();
				return true;
			}
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();// 回滚事务
				return false;
			}
			e.printStackTrace();
		} finally {
			session.close();// 关闭Session,释放资源
		}
		return false;
	}

	// 修改邮件删除状态
	public boolean movetoEmail(int id, String deletestatus) {
		Session session = sessionFactory.openSession();
		Transaction tx = null;
		try {
			String newstatus = null;
			if (deletestatus.equals("未删")) {
				newstatus = "已删";
			} else if (deletestatus.equals("已删")) {
				newstatus = "未删";
			}
			String hql = "update Email e set e.deletestatus='" + newstatus
					+ "' where e.id=" + id;
			tx = session.beginTransaction();
			Query query = session.createQuery(hql);
			int i = query.executeUpdate();
			if (i == 1) {
				tx.commit();
				return true;
			}
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();// 回滚事务
				return false;
			}
			e.printStackTrace();
		} finally {
			session.close();// 关闭Session,释放资源
		}
		return false;
	}

	// 修改邮件已读状态
	public boolean updateEmail(int id) {
		Session session = sessionFactory.openSession();
		Transaction tx = null;
		try {
			String hql = "update Email e set e.readstatus='已读' where e.id="
					+ id;
			tx = session.beginTransaction();
			Query query = session.createQuery(hql);
			int i = query.executeUpdate();
			if (i == 1) {
				tx.commit();
				return true;
			}
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();// 回滚事务
				return false;
			}
			e.printStackTrace();
		} finally {
			session.close();// 关闭Session,释放资源
		}
		return false;
	}

	// 根据ID获取邮件
	public Email queryEmail(int id) {
		Email email = null;
		Session session = sessionFactory.openSession();
		String hql = "from Email e where e.id=" + id;
		Query query = session.createQuery(hql);
		email = (Email) query.uniqueResult();
		session.close();// 关闭Session,释放资源
		return email;
	}
}
最近下载更多
Jhhhhh  LV6 2022年11月30日
cccccc12  LV8 2022年5月19日
wanglinddad  LV55 2022年4月5日
15281682932  LV9 2020年7月7日
wyp2530800765  LV4 2020年3月11日
阿三在中国  LV7 2020年3月9日
houliukou  LV38 2020年2月17日
1848245462  LV2 2019年11月20日
zhf929  LV2 2019年10月29日
tianaihua  LV1 2019年9月30日
最近浏览更多
WBelong  LV8 2023年12月27日
bananmike77 2023年10月7日
暂无贡献等级
carloscarlos  LV1 2023年9月14日
8战魂5无双8  LV43 2023年8月20日
zhy1989wz  LV6 2023年7月31日
zhaoka 2023年5月30日
暂无贡献等级
Skeet1111  LV3 2023年5月30日
immeng 2023年5月22日
暂无贡献等级
xiquyiyuan  LV10 2023年3月31日
2716804680  LV9 2023年3月20日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友