?? subjectdao.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 + -