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

📄 documentdaohibernateimpl.java

📁 软件工程资料
💻 JAVA
字号:
package com.cnpoint.myspaces.document.dao.hibernate;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;

import com.cnpoint.myspaces.common.util.BaseDAOHibernate;
import com.cnpoint.myspaces.document.dao.DocumentDAO;
import com.cnpoint.myspaces.document.model.Document;
import com.cnpoint.myspaces.document.model.DocumentNode;

public class DocumentDAOHibernateImpl extends BaseDAOHibernate implements  DocumentDAO{
	private static final String LOAD_ALL_COUNT ="select count(*) from Document ui";
	/**
	 * 保存文档信息
	 * status =0 状态表示没有审核 刚刚派发
	 */
	public void saveDocument(Document doc) {
		// TODO Auto-generated method stub
	    getHibernateTemplate().saveOrUpdate(doc);
	
	    //documentnode
		Document doc2 =(Document)getHibernateTemplate().find("select doc from Document doc where doc.beginUser='"+doc.getBeginUser()+"' order by doc.createdate desc").get(0);
			
	    DocumentNode docNode = new DocumentNode();
		docNode.setDocID(doc2.getId());
		docNode.setDocumentName(doc.getName());
		docNode.setBeginUser(doc.getBeginUser());
		docNode.setEndUser(doc.getEndUser());
		docNode.setStatus(0);
		getHibernateTemplate().save(docNode);
		
		
		 
	}

	//得到自己需要做的,不是自己派发的列表
	public List findDocumentListDo(final int offset, final int limit,final String username) {
		// TODO Auto-generated method stub
		 return getHibernateTemplate().executeFind(new HibernateCallback() {
		      public Object doInHibernate(Session s) throws HibernateException, SQLException {
		          String q = "from Document" +
		          " document  where document.endUser = '"+username+"'  and document.status= 0  ";

		          Query query = s.createQuery(q);
		          query.setFirstResult(offset);
		          query.setMaxResults(limit);
		          List list = query.list();
		          return list;

		      }
		    });
	}
//	得到自己派发的,不需要自己做的列表
	public List findDocumentList(final int offset, final int limit,final String username) {
		// TODO Auto-generated method stub
		 return getHibernateTemplate().executeFind(new HibernateCallback() {
		      public Object doInHibernate(Session s) throws HibernateException, SQLException {
		          String q = "from Document" +
		          " document  where document.beginUser = '"+username+"'   ";

		          Query query = s.createQuery(q);
		          query.setFirstResult(offset);
		          query.setMaxResults(limit);
		          List list = query.list();
		          return list;

		      }
		    });
	}
   //是自己派发的
	public int getAllDocumentNum(String username ) {
		// TODO Auto-generated method stub
		try {
			  String hsql = "select count(*) from Document document where document.beginUser = '"+username+"'   ";
		      List l = getHibernateTemplate().find(hsql);
		      if (!l.isEmpty()) {
		        return ( (Integer) l.get(0)).intValue();
		      }
		      else {
		        return 0;
		      }
		    }
		    catch (DataAccessException ex) {
		      logger.error(ex);
		      return 0;
		    }
	}
	
	//不是自己派发的
	public int getAllDocumentNum2(String username ) {
		// TODO Auto-generated method stub
		try {
			  String hsql = "select count(*) from Document document where document.endUser = '"+username+"' and document.status= 0  ";
		      List l = getHibernateTemplate().find(hsql);
		      if (!l.isEmpty()) {
		        return ( (Integer) l.get(0)).intValue();
		      }
		      else {
		        return 0;
		      }
		    }
		    catch (DataAccessException ex) {
		      logger.error(ex);
		      return 0;
		    }
	}

	public List findDocumentListFinish(final int offset,final  int limit,final String username) {
		// TODO Auto-generated method stub
		 return getHibernateTemplate().executeFind(new HibernateCallback() {
		      public Object doInHibernate(Session s) throws HibernateException, SQLException {
		          String q = "from Document" +
		          " document  where document.endUser = '"+username+"'  and document.status= 1   ";

		          Query query = s.createQuery(q);
		          query.setFirstResult(offset);
		          query.setMaxResults(limit);
		          List list = query.list();
		          return list;

		      }
		    });
	}

	public int getAllDocumentNumFinish(String username) {
		// TODO Auto-generated method stub
		try {
			  String hsql = "select count(*) from Document document where document.endUser = '"+username+"' and document.status= 1   ";
		      List l = getHibernateTemplate().find(hsql);
		      if (!l.isEmpty()) {
		        return ( (Integer) l.get(0)).intValue();
		      }
		      else {
		        return 0;
		      }
		    }
		    catch (DataAccessException ex) {
		      logger.error(ex);
		      return 0;
		    }
	}	
	/**
	 * 更新父节点的信息,
	 * 同时在产生一个新的文档在document
	 * 记录日志在documentNode
	 */
	public void update(Document doc){
		//getHibernateTemplate().update(doc);
		 
		/*
		Session session = getHibernateTemplate().getSessionFactory().openSession();
		Transaction tx = null;
		try{
			tx = session.beginTransaction();
			Document doc1 = (Document)session.load(Document.class,doc.getId());
			doc1.setId(doc.getId());
			doc1.setStatus(1);
			session.update(doc1);
		    tx.commit();
		}catch (HibernateException he){
		    tx.rollback();
		 
		}finally{
		    session.close();
		}*/
		//Document d = (Document)getHibernateTemplate().load(Document.class,doc.getId());
		List l = getHibernateTemplate().find("from Document doc where doc.endUser='"+doc.getBeginUser()+"' and doc.parent='"+doc.getId()+"' ");
		if(l.size() == 0){
			
			Document k = (Document)getHibernateTemplate().load(Document.class,doc.getId());
			k.setStatus(1);
			getHibernateTemplate().update(k);
		}else{
			Document v = (Document)l.get(0);
			v.setStatus(1);
			getHibernateTemplate().update(v);
			
		}
		
		//d.setStatus(1);
		
		
		//先查询数据表,parent 是否为空,然后在更新
		
	 
		
		Document doc2 = new Document();
		doc2.setParent(doc.getId());
		doc2.setBeginUser(doc.getBeginUser());
		doc2.setEndUser(doc.getEndUser());
		doc2.setFilename(doc.getFilename());
		doc2.setName(doc.getName());
		doc2.setStatus(0);
		getHibernateTemplate().save(doc2);
		
		
		
		//saveDocumentNode(doc2,doc.getId());
		String id = doc.getId();
		DocumentNode docNode = new DocumentNode();
		docNode.setDocID(id);
		docNode.setDocumentName(doc2.getName());
		docNode.setBeginUser(doc2.getBeginUser());
		docNode.setEndUser(doc2.getEndUser());
		docNode.setStatus(0);
		getHibernateTemplate().save(docNode);
		//update documentNode set status = 1 where docID = '' and endUser=' ';
		
		DocumentNode docUpdateNode = (DocumentNode)getHibernateTemplate().find("from DocumentNode node where node.status=0 and node.endUser='"+doc2.getBeginUser()+"' and node.docID='"+id+"' ").get(0);
		docUpdateNode.setStatus(1);
		getHibernateTemplate().update(docUpdateNode);
		 

	}
	
	public void saveDocumentNode(Document doc,String id) {
		// TODO Auto-generated method stub
		//Document document = (Document)getHibernateTemplate().find("from Document doc where doc.id='"+id+"' ").get(0);
	    
		 
		//getHibernateTemplate().saveOrUpdate(doc);
	    //Document doc2 =(Document)getHibernateTemplate().find("select doc from Document doc where doc.beginUser='"+doc.getBeginUser()+"' order by doc.createdate desc").get(0);
		
	    
	    DocumentNode docNode = new DocumentNode();
		docNode.setDocID(id);
		docNode.setDocumentName(doc.getName());
		docNode.setBeginUser(doc.getBeginUser());
		docNode.setEndUser(doc.getEndUser());
		docNode.setStatus(0);
		getHibernateTemplate().save(docNode);
		//update documentNode set status = 1 where docID = '' and endUser=' ';
		
		DocumentNode docUpdateNode = (DocumentNode)getHibernateTemplate().find("from DocumentNode node where node.status=0 and node.endUser='"+doc.getBeginUser()+"' and node.docID='"+id+"' ").get(0);
		docUpdateNode.setStatus(1);
		getHibernateTemplate().update(docUpdateNode);
		//getHibernateTemplate().update("",doc);
		  
	}
	/**
	 * 审核的时候用
	 * @param doc
	 * @param id
	 */
	
	public void update(String id) {
		// TODO Auto-generated method stub
		Document document = (Document)getHibernateTemplate().find("from Document doc where doc.id='"+id+"' ").get(0);
	    
		 
		//getHibernateTemplate().saveOrUpdate(doc);
	    //Document doc2 =(Document)getHibernateTemplate().find("select doc from Document doc where doc.beginUser='"+doc.getBeginUser()+"' order by doc.createdate desc").get(0);
		
	    /*
	    DocumentNode docNode = new DocumentNode();
		docNode.setDocID(id);
		docNode.setDocumentName(doc.getName());
		docNode.setBeginUser(doc.getBeginUser());
		docNode.setEndUser(doc.getEndUser());
		docNode.setStatus(0);
		getHibernateTemplate().save(docNode);
		//update documentNode set status = 1 where docID = '' and endUser=' ';
		
		DocumentNode docUpdateNode = (DocumentNode)getHibernateTemplate().find("from DocumentNode node where node.status=0 and node.endUser='"+doc.getBeginUser()+"' ").get(0);
		docUpdateNode.setStatus(1);
		getHibernateTemplate().update(docUpdateNode);
		//getHibernateTemplate().update("",doc);
		 */
	}
	/**
	 * 更新审核的节点.  stauts = 1 表示已经做过
	 */
	public void updateEnd(Document doc){
		//getHibernateTemplate().update(doc);
		Session session = getHibernateTemplate().getSessionFactory().openSession();
		Transaction tx = null;
		try{
			tx = session.beginTransaction();
			Document doc1 = (Document)session.load(Document.class,doc.getId());
			doc1.setId(doc.getId());
			doc1.setStatus(1);
			session.update(doc1);
		    tx.commit();
		}catch (HibernateException he){
		    tx.rollback();
		 
		}finally{
		    session.close();
		}
	}

	public Document load(String id) {
		// TODO Auto-generated method stub
		return (Document)getHibernateTemplate().find("from Document doc where doc.id='"+id+"' ").get(0);
	}

	public void delete(Document doc) {
		// TODO Auto-generated method stub
		getHibernateTemplate().delete(doc);
	}

}

⌨️ 快捷键说明

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