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

📄 subjectdao.java

📁 bbs论坛 采用java的Web开发strtus、hibernate
💻 JAVA
字号:
package com.wish.bbs.dao;

import java.io.UnsupportedEncodingException;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;

import com.wish.bbs.factory.HibernateSessionFactory;
import com.wish.bbs.pojo.Subject;
import com.wish.bbs.pojo.Topic;

public class SubjectDAO {
	Session session=null;
	public void getSession(){
		this.session=new Configuration().configure().buildSessionFactory().openSession();
	}
	
	public void save(Subject subject){
		this.session=HibernateSessionFactory.getSession();
		this.session.save(subject);
		System.out.println("我被保存了");
		this.session.beginTransaction().commit();
		HibernateSessionFactory.closeSession();
	}
	
	public void delete(String id) {
		this.session=HibernateSessionFactory.getSession();
		String hql = "DELETE FROM Subject WHERE sid=?";
		Query q = this.session.createQuery(hql);
		q.setString(0, id);
		q.executeUpdate();
		this.session.beginTransaction().commit();
		HibernateSessionFactory.closeSession();
	}
	
	public List getAllSubject(){
		this.session=HibernateSessionFactory.getSession();
		List list=null;
		String hql="select new Subject(s.sid,s.name,s.description,s.createdate,s.photo,s.status) From Subject as s";
		Query q=this.session.createQuery(hql);
		list=q.list();
		Iterator it=list.iterator();
		String hql1="select count(*),sum(t.count) from Topic as t where t.subject.sid=? order by t.createdate";
		String hql2="select new Topic(t.tid,t.title,t.content,t.createdate,t.iflocked,t.lastmodiedtime,t.writer,t.count,t.tgrade) from Topic as t where t.subject.sid=? order by t.createdate desc";
		Query q1=this.session.createQuery(hql1);
		Query q2=this.session.createQuery(hql2);
		while(it.hasNext()){
			Subject temp=(Subject)it.next();
			q1.setString(0, temp.getSid());
			q2.setString(0, temp.getSid());
			q2.setFirstResult(0);
			q2.setMaxResults(1);
			System.out.println("test----***+++");
			List r=q1.list();
			List lasttopic=q2.list();
			Iterator it1=r.iterator();
			if(it1.hasNext()){
				System.out.println("test----***+++//////////");
				Object[] res=(Object[])it1.next();
				System.out.println((Integer)res[0]);
				if((Integer)res[0]>0){
					System.out.println("test----***+++//////////");
					temp.setTcount((Integer)res[0]);
					temp.setTopicsum((Integer)res[1]);
				}else{
					temp.setTcount(0);
					temp.setTopicsum(0);
				}
			}
			DateFormat df=DateFormat.getDateInstance();
			
			if(lasttopic.size()>0){
				Topic topic=(Topic)lasttopic.get(0);
				topic.setCdate(df.format(topic.getCreatedate()));
				temp.setTopic(topic);
			}
		}
		HibernateSessionFactory.closeSession();
		return list;
	}
	
	public List queryById(String id,int start) {
		this.session=HibernateSessionFactory.getSession();
		String hql = "FROM Topic AS s WHERE s.subject.sid=?";
		Query q = this.session.createQuery(hql);
		q.setString(0, id);
		q.setFirstResult(start);
		q.setMaxResults(10);
		List all = q.list();
		HibernateSessionFactory.closeSession();
		return all;
	}
	
	public Subject queryByIddd(String id) {
		this.session=HibernateSessionFactory.getSession();
		Subject p = null;
		String hql = "FROM Subject AS p WHERE p.sid=?";
		Query q = this.session.createQuery(hql);
		q.setString(0, id);
		List all = q.list();
		if (all.size() > 0) {
			p = (Subject) all.get(0);
		}
		HibernateSessionFactory.closeSession();
		return p;
	}
	
	public List getTopicSum(List subject){
		List sum=new ArrayList();
		this.session=HibernateSessionFactory.getSession();
		Iterator it=subject.iterator();
		String hql="select sum(t.count) from Topic as t where t.subject.sid=?";
		Query q=this.session.createQuery(hql);
		while(it.hasNext()){
			Subject temp=(Subject)it.next();
			q.setString(0, temp.getSid());
			List r=q.list();
			if(r.size()>0){
				temp.setTopicsum((Integer)r.get(0));
				sum.add(temp);
			}
		}
		HibernateSessionFactory.closeSession();
		return sum;
	}
	
	/*Subject(sid,name,description,createdate,photo,status) {
	 * public void update(Person per) {
		this.session.update(per);
		this.session.beginTransaction().commit();
	}

	public void delete(String id) {
		String hql = "DELETE FROM Person WHERE id=?";
		Query q = this.session.createQuery(hql);
		q.setString(0, id);
		q.executeUpdate();
		this.session.beginTransaction().commit();
	}

	public Person queryById(String id) {
		Person p = null;
		String hql = "FROM Person AS p WHERE p.id=?";
		Query q = this.session.createQuery(hql);
		q.setString(0, id);
		List all = q.list();
		if (all.size() > 0) {
			p = (Person) all.get(0);
		}
		return p;
	}
*/
	public void closeSession(){
		this.session.close();
	}
}

⌨️ 快捷键说明

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