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

📄 messagedao.java

📁 spring+hibernate+struts开发的校务oa系统
💻 JAVA
字号:
package com.yondor.oa.db.message.dao;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Expression;

import org.springframework.context.ApplicationContext;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.yondor.oa.db.holsapply.dao.Holsapply;
import com.yondor.oa.db.message.iface.IMessage;

/**
 * Data access object (DAO) for domain model class Message.
 * 
 * @see com.yondor.oa.db.message.Message
 * @author MyEclipse - Hibernate Tools
 */
public class MessageDAO extends HibernateDaoSupport implements IMessage {

	private static final Log log = LogFactory.getLog(MessageDAO.class);

	protected void initDao() {
		// do nothing
	}

	public Message save(Message transientInstance) throws SQLException {
		log.debug("saving Message instance");
		try {
			getHibernateTemplate().save(transientInstance);
			Long id=this.getCurrentSeqID();
			Message po=new Message();
			po=this.findById(id);
			log.debug("save successful");
			return po;			
			
		} catch (RuntimeException re) {
			log.error("save failed", re);
			throw re;
		}
	}

	public void delete(Message persistentInstance) {
		log.debug("deleting Message instance");
		try {
			getHibernateTemplate().delete(persistentInstance);
			log.debug("delete successful");
		} catch (RuntimeException re) {
			log.error("delete failed", re);
			throw re;
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#findById(java.lang.Long)
	 */
	public Message findById(java.lang.Long id) {
		log.info("getting Message instance with id: " + id);
		try {
			Message instance = (Message) getHibernateTemplate().get(
					Message.class, id);
			return instance;
		} catch (RuntimeException re) {
			log.error("get failed", re);
			throw re;
		}
	}

	/**
	 * 查询方法
	 * 
	 * @param paramVO
	 * @return
	 */
	public List query(MessageVO paramVO) {
		DetachedCriteria dc = DetachedCriteria.forClass(Message.class);
		if (null != paramVO.getSendop()) {
			dc.createAlias(IMessage.SENDOP, "sendop").add(
					Expression.eq("sendop.operatorid", paramVO.getSendop()
							.getOperatorid()));
		}

		if (null != paramVO.getRecevieop()) {
			dc.createAlias(IMessage.RECEVIEOP, "recevieop").add(
					Expression.eq("recevieop.operatorid", paramVO
							.getRecevieop().getOperatorid()));
		}

		if (null != paramVO.getType()) {
			dc.createAlias(IMessage.TYPE, "type").add(
					Expression.eq("type.greensysparamid", paramVO.getType()
							.getGreensysparamid()));
		}
		if (null != paramVO.getIsread()) {
			dc.createAlias(IMessage.ISREAD, "isread").add(
					Expression.eq("isread.greensysparamid", paramVO.getIsread()
							.getGreensysparamid()));
		}
		if (null != paramVO.getSendtime()) {
			dc.add(Expression.eq("sendtime", paramVO.getSendtime()));
		}

		if (null != paramVO.getSflag()) {
			dc.createAlias(IMessage.SFLAG, "sflag").add(
					Expression.eq("sflag.greensysparamid", paramVO.getSflag()
							.getGreensysparamid()));
		}
		return findByCondition(dc);
	}

	public List query(MessageVO paramVO, int firstResult, int maxResult) {
		DetachedCriteria dc = DetachedCriteria.forClass(Message.class);
		if (null != paramVO.getSendop()) {
			dc.createAlias(IMessage.SENDOP, "sendop").add(
					Expression.eq("sendop.operatorid", paramVO.getSendop()
							.getOperatorid()));
		}
		if (null != paramVO.getRecevieop()) {
			dc.createAlias(IMessage.RECEVIEOP, "recevieop").add(
					Expression.eq("recevieop.operatorid", paramVO
							.getRecevieop().getOperatorid()));
		}
		if (null != paramVO.getType()) {
			dc.createAlias(IMessage.TYPE, "type").add(
					Expression.eq("type.greensysparamid", paramVO.getType()
							.getGreensysparamid()));
		}
		if (null != paramVO.getIsread()) {
			dc.createAlias(IMessage.ISREAD, "isread").add(
					Expression.eq("isread.greensysparamid", paramVO.getIsread()
							.getGreensysparamid()));
		}
		if (null != paramVO.getSendtime()) {
			dc.add(Expression.eq("sendtime", paramVO.getSendtime()));
		}

		if (null != paramVO.getSflag()) {
			dc.createAlias(IMessage.SFLAG, "sflag").add(
					Expression.eq("sflag.greensysparamid", paramVO.getSflag()
							.getGreensysparamid()));
		}

		return findByCondition(dc, firstResult, maxResult);
	}

	public List getCriteria(DetachedCriteria detachedCriteria)
			throws DataAccessException {
		return getHibernateTemplate().findByCriteria(detachedCriteria);
	}

	public List findByCondition(String queryString, String[] paramNames,
			Object[] values) {
		return getHibernateTemplate().findByNamedParam(queryString, paramNames,
				values);
	}

	public List findByCondition(DetachedCriteria criteria) {
		return getHibernateTemplate().findByCriteria(criteria);
	}

	public List findByCondition(DetachedCriteria criteria, int firstResult,
			int maxResults) {
		return getHibernateTemplate().findByCriteria(criteria, firstResult,
				maxResults);
	}

	public List findByCondition(Criterion criterion) {
		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Message.class).add(criterion));
	}

	public List findByCondition(Criterion criterion, int firstResult,
			int maxResults) {
		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Message.class).add(criterion),
				firstResult, maxResults);
	}

	public List findByCondition(Criterion self, String alias,
			Criterion association, int firstResult, int maxResults) {
		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Message.class).add(self).createAlias(
						alias, "model").add(association), firstResult,
				maxResults);
	}

	public List findBySendop(Criterion association) {
		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Message.class).createAlias(SENDOP,
						"model").add(association));
	}

	public List findByRecevieop(Criterion association) {
		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Message.class).createAlias(RECEVIEOP,
						"model").add(association));
	}

	public List findByType(Criterion association) {
		return getHibernateTemplate().findByCriteria(
				DetachedCriteria.forClass(Message.class).createAlias(TYPE,
						"model").add(association));
	}

	public List findByHql(StringBuffer hql) {
		return getHibernateTemplate().find(hql.toString());
	}

	public List findByExample(Message instance) {
		log.debug("finding Message instance by example");
		try {
			List results = getHibernateTemplate().findByExample(instance);
			log.debug("find by example successful, result size: "
					+ results.size());
			return results;
		} catch (RuntimeException re) {
			log.error("find by example failed", re);
			throw re;
		}
	}

	public List findByProperty(String propertyName, Object value) {
		log.debug("finding Message instance with property: " + propertyName
				+ ", value: " + value);
		try {
			String queryString = "from Message as model where model."
					+ propertyName + "= ?";
			return getHibernateTemplate().find(queryString, value);
		} catch (RuntimeException re) {
			log.error("find by property name failed", re);
			throw re;
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#findByTitle(java.lang.Object)
	 */
	public List findByTitle(Object title) {
		return findByProperty(TITLE, title);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#findByContent(java.lang.Object)
	 */
	public List findByContent(Object content) {
		return findByProperty(CONTENT, content);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#findByFilepath(java.lang.Object)
	 */
	public List findByFilepath(Object filepath) {
		return findByProperty(FILEPATH, filepath);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#findByType(java.lang.Object)
	 */
	public List findByType(Object type) {
		return findByProperty(TYPE, type);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#findByIsread(java.lang.Object)
	 */
	public List findByIsread(Object isread) {
		return findByProperty(ISREAD, isread);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#merge(com.yondor.oa.db.message.dao.Message)
	 */
	public Message merge(Message detachedInstance) {
		log.debug("merging Message instance");
		try {
			Message result = (Message) getHibernateTemplate().merge(
					detachedInstance);
			log.debug("merge successful");
			return result;
		} catch (RuntimeException re) {
			log.error("merge failed", re);
			throw re;
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#attachDirty(com.yondor.oa.db.message.dao.Message)
	 */
	public void attachDirty(Message instance) {
		log.debug("attaching dirty Message instance");
		try {
			getHibernateTemplate().saveOrUpdate(instance);
			log.debug("attach successful");
		} catch (RuntimeException re) {
			log.error("attach failed", re);
			throw re;
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see com.yondor.oa.db.message.dao.IMessage#attachClean(com.yondor.oa.db.message.dao.Message)
	 */
	public void attachClean(Message instance) {
		log.debug("attaching clean Message instance");
		try {
			getHibernateTemplate().lock(instance, LockMode.NONE);
			log.debug("attach successful");
		} catch (RuntimeException re) {
			log.error("attach failed", re);
			throw re;
		}
	}

	public static IMessage getFromApplicationContext(ApplicationContext ctx) {
		return (IMessage) ctx.getBean("MessageDAO");
	}
	
	public Long createNewSeqID() throws SQLException{
		Session session=getSession();
		Connection connection = session.connection ();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            preparedStatement = connection.prepareStatement ("select TEST_SQ.Nextval from dual");
            resultSet = preparedStatement.executeQuery ();
            BigDecimal value = null;
            while (resultSet.next ()) {
                value = resultSet.getBigDecimal (1);
            }
            return value.longValueExact ();
        }
        finally {
            if (preparedStatement != null) {
                preparedStatement.close ();
            }
            if (resultSet != null) {
                resultSet.close ();
            }
        }

	}
	
	public Long getCurrentSeqID() throws SQLException{
		Session session=getSession();
		Connection connection = session.connection ();
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            preparedStatement = connection.prepareStatement ("select TEST_SQ.Currval from dual");
            resultSet = preparedStatement.executeQuery ();
            BigDecimal value = null;
            while (resultSet.next ()) {
                value = resultSet.getBigDecimal (1);
            }
            return value.longValueExact ();
        }
        finally {
            if (preparedStatement != null) {
                preparedStatement.close ();
            }
            if (resultSet != null) {
                resultSet.close ();
            }
        }
	}
	
	
	
	
}

⌨️ 快捷键说明

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