📄 gradedaoimp.java
字号:
package dao.hibernate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.jfree.data.general.DefaultPieDataset;
import org.springframework.orm.hibernate3.HibernateTemplate;
import po.Oexampaper;
import po.Ograde;
import po.Ostudent;
import dao.IGradeDao;
public class GradeDaoImp implements IGradeDao
{
private SessionFactory sf;
private HibernateTemplate template;
private static float level_6 = 0.6f;
private static float level_7 = 0.7f;
private static float level_8 = 0.8f;
private static float level_9 = 0.9f;
public SessionFactory getSf()
{
return sf;
}
public void setSf(SessionFactory sf)
{
this.sf = sf;
//通过session工厂得到hibernate模版
template = new HibernateTemplate(sf);
}
public void addGrade(Ograde grade)
{
template.save(grade);
sf.close();
}
public void delGrade(String id)
{
template.delete(this.findGradeByid(id));
sf.close();
}
public List findAllGrade(Oexampaper exam)
{
SessionFactory sf = template.getSessionFactory();
Session s = sf.openSession();
String hql = "select o from Ograde o where o.examid=?";
Query q = s.createQuery(hql);
q.setEntity(0,exam);
List list = q.list();
s.close();
return list;
}
public Ograde findGradeByid(String id)
{
Ograde grade = (Ograde) template.get(Ograde.class, Long.parseLong(id));
sf.close();
return grade;
}
public Ograde findGradeBykey(Ostudent stu, Oexampaper exam)
{
SessionFactory sf = template.getSessionFactory();
Session s = sf.openSession();
String hql = "select o from Ograde o where o.ostudent=? and o.oexampaper=?";
Query q = s.createQuery(hql);
q.setParameter(0,stu);
q.setParameter(1,exam);
List list = q.list();
s.close();
if(list.size()!=0)
{
Ograde grade = (Ograde)list.get(0);
return grade;
}
else
{
return null;
}
}
public Collection findByGradekey(int currow, int pagesize, String text, String colleage, String exam)
{
Collection TestList = null;
List listall = new ArrayList();
Query q = null;
SessionFactory sf = template.getSessionFactory();
Session s = sf.openSession();
Ostudent stu = new Ostudent();
Oexampaper examp = new Oexampaper();
String hql = "";
//没有条件
if ((null == text && null == colleage && null == exam)|| ("".equals(text) && "null".equals(colleage) && "null".equals(exam))||
("".equals(text) && "所有专业".equals(colleage) && "所有试卷".equals(exam)))
{
hql = "from Ograde o order by o.id asc";
q = s.createQuery(hql);
}
//1个条件
else if(null!=text && "所有专业".equals(colleage) && "所有试卷".equals(exam))
{
hql = "from Ograde og where og.ostudent.name like :name or og.ostudent.id like :id";
q = s.createQuery(hql);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else if("".equals(text)&& ("所有专业".equals(colleage)==false) && "所有试卷".equals(exam))
{
//hql = "from Ostudent os left outer join os.ogrades og where os.college=?";
//hql = "from Ograde og where og.ostudent.id in (select id from Ostudent os where os.college=?)";
hql = "from Ograde og where og.ostudent.college=?";
q = s.createQuery(hql);
q.setString(0, colleage);
}
else if("".equals(text) && "所有专业".equals(colleage) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.oexampaper.name=?";
q = s.createQuery(hql);
q.setString(0,exam);
}
//2个条件
else if(null!=text && ("所有专业".equals(colleage)==false) && "所有试卷".equals(exam))
{
hql = "from Ograde og where og.ostudent.college=? and (og.ostudent.name like :name or og.ostudent.id like :id)";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else if(null!=text && "所有专业".equals(colleage) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.oexampaper.name=? and (og.ostudent.name like :name or og.ostudent.id like :id)";
q = s.createQuery(hql);
q.setString(0,exam);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else if("".equals(text)&& ("所有专业".equals(colleage)==false) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.ostudent.college=? and og.oexampaper.name=?";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString(1,exam);
}
//3个条件
else if(null!=text && ("所有专业".equals(colleage)==false) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.ostudent.college=? and og.oexampaper.name=? and (og.ostudent.name like :name or og.ostudent.id like :id)";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString(1,exam);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else
{
}
q.setFirstResult(currow);
q.setMaxResults(pagesize);
TestList = q.list();
s.close();
return TestList;
}
public int findByGradekey(String text, String colleage, String exam)
{
Query q = null;
SessionFactory sf = template.getSessionFactory();
Session s = sf.openSession();
String hql = "";
int count = 0;
//没有条件
if ((null == text && null == colleage && null == exam)|| ("".equals(text) && "null".equals(colleage) && "null".equals(exam))||
("".equals(text) && "所有专业".equals(colleage) && "所有试卷".equals(exam)))
{
hql = "from Ograde o order by o.id asc";
q = s.createQuery(hql);
}
//1个条件
else if(null!=text && "所有专业".equals(colleage) && "所有试卷".equals(exam))
{
hql = "from Ograde og where og.ostudent.name like :name or og.ostudent.id like :id";
q = s.createQuery(hql);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else if("".equals(text)&& ("所有专业".equals(colleage)==false) && "所有试卷".equals(exam))
{
//hql = "from Ostudent os left outer join os.ogrades og where os.college=?";
//hql = "from Ograde og where og.ostudent.id in (select id from Ostudent os where os.college=?)";
hql = "from Ograde og where og.ostudent.college=?";
q = s.createQuery(hql);
q.setString(0, colleage);
}
else if("".equals(text) && "所有专业".equals(colleage) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.oexampaper.name=?";
q = s.createQuery(hql);
q.setString(0,exam);
}
//2个条件
else if(null!=text && ("所有专业".equals(colleage)==false) && "所有试卷".equals(exam))
{
hql = "from Ograde og where og.ostudent.college=? and (og.ostudent.name like :name or og.ostudent.id like :id)";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else if(null!=text && "所有专业".equals(colleage) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.oexampaper.name=? and (og.ostudent.name like :name or og.ostudent.id like :id)";
q = s.createQuery(hql);
q.setString(0,exam);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else if("".equals(text)&& ("所有专业".equals(colleage)==false) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.ostudent.college=? and og.oexampaper.name=?";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString(1,exam);
}
//3个条件
else if(null!=text && ("所有专业".equals(colleage)==false) && ("所有试卷".equals(exam))==false)
{
hql = "from Ograde og where og.ostudent.college=? and og.oexampaper.name=? and (og.ostudent.name like :name or og.ostudent.id like :id)";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString(1,exam);
q.setString("name", "%" + text + "%");
q.setString("id", "%" + text + "%");
}
else
{
}
count = q.list().size();
s.close();
return count;
}
public List findByGradekeyPie(String exam, String colleage)
{
Query q = null;
SessionFactory sf = template.getSessionFactory();
Session s = sf.openSession();
String hql = "";
List list = new ArrayList();
hql = "from Ograde og where og.ostudent.college=? and og.oexampaper.name=?";
q = s.createQuery(hql);
q.setString(0,colleage);
q.setString(1,exam);
list = q.list();
s.close();
return list;
}
public DefaultPieDataset getDataSet(String Totalpoint,String exam, String colleage)
{
String level_bad = "不及格";
String level_66 = "分以上";
String level_77 = "分以上";
String level_88 = "分以上";
String level_99 = "分以上";
int i_bad = 0;
int i_6 = 0;
int i_7 = 0;
int i_8 = 0;
int i_9 = 0;
float totalpoint = Float.parseFloat(Totalpoint);
float point_6 = totalpoint*level_6;
float point_7 = totalpoint*level_7;
float point_8 = totalpoint*level_8;
float point_9 = totalpoint*level_9;
level_66 = (int)point_6 + level_66;
level_77 = (int)point_7 + level_77;
level_88 = (int)point_8 + level_88;
level_99 = (int)point_9 + level_99;
List list = this.findByGradekeyPie(exam, colleage);
Iterator iter = list.iterator();
while(iter.hasNext())
{
Ograde grade = (Ograde)iter.next();
float point = Float.parseFloat(grade.getGrade());
if(point >= point_6&&point < point_7)
{
i_6++;
}
else if(point >= point_7&&point < point_8)
{
i_7++;
}
else if(point >= point_8&&point < point_9)
{
i_8++;
}
else if(point >= point_9)
{
i_9++;
}
else
{
i_bad++;
}
}
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue(level_bad, i_bad);
dataset.setValue(level_66, i_6);
dataset.setValue(level_77, i_7);
dataset.setValue(level_88, i_8);
dataset.setValue(level_99, i_9);
return dataset;
}
public List getGradeScore()
{
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -