package edu.sjtu.infosec.ismp.manager.RAM.dao.impl; import java.util.List; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import edu.sjtu.infosec.ismp.manager.RAM.dao.StatVulnPoinDao; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowStatVulnKind; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowStatVulnPoin; import edu.sjtu.infosec.ismp.manager.comm.model.page.Page; /** * 数据层 静态脆弱点Dao实现类. * */ public class StatVulnPoinDaoImpl extends HibernateDaoSupport implements StatVulnPoinDao { /** * 查询静态脆弱点 * * @param id * 静态脆弱点类别id * @return 静态脆弱点类别对象 **/ public AsseKnowStatVulnPoin find(Integer id) { AsseKnowStatVulnPoin statVulnPoin =null; String hql = "from AsseKnowStatVulnPoin where id = "+id; List list = this.getHibernateTemplate().find(hql); if(list!=null &&list.size()>0){ statVulnPoin = (AsseKnowStatVulnPoin) list.get(0); } return statVulnPoin; } /** * 查询静态脆弱点数量 * @return 静态脆弱点数量 **/ public int getCount() { Criteria criteria = getSession().createCriteria(AsseKnowStatVulnPoin.class); return 0;//count(criteria); } /** * 查询静态脆弱点分页记录 * @param page * 分页对象 * @return 分页记录列表 **/ public List<AsseKnowStatVulnPoin> listStatVulnPoinPage(Page page) { List<AsseKnowStatVulnPoin> statVulnPoinlist = null; Criteria criteria = getSession().createCriteria(AsseKnowStatVulnPoin.class) .addOrder(Order.asc("id")); if(page!=null) { criteria.setFirstResult(page.getBeginIndex()) .setMaxResults(page.getEveryPage()); } statVulnPoinlist = criteria.list(); return statVulnPoinlist; } /** * 删除静态脆弱点对象 * * @param statVulnKind * 静态脆弱点类别对象 **/ public void remove(AsseKnowStatVulnPoin statVulnPoin) { getHibernateTemplate().delete(statVulnPoin); } /** * 保存/更新静态脆弱点对象 * * @param statVulnKind * 静态脆弱点类别对象 **/ public void saveOrUpdate(AsseKnowStatVulnPoin statVulnPoin) { getHibernateTemplate().saveOrUpdate(statVulnPoin); } /** * 根据静态脆弱点类别返回该项目未选静态脆弱点列表 * @param statVulnKind * 静态脆弱点类别 * @return 静态脆弱点列表 **/ public List<AsseKnowStatVulnPoin> listStatVulnPoin( Integer asseInfoProjId, AsseKnowStatVulnKind statVulnKind) { List list = getHibernateTemplate().find("select statVulnPoin " + "from AsseKnowStatVulnPoin statVulnPoin " + "where statVulnPoin.id NOT IN (select dynaVuln.asseKnowStatVulnPoinId from AsseKnowDynaVuln dynaVuln where dynaVuln.asseInfoProjId = '"+asseInfoProjId+"' ) "+ "and statVulnPoin.vulnKind = ?",statVulnKind); return list; } /** * 返回所有静态脆弱点 * @return 静态脆弱点列表 **/ public List<AsseKnowStatVulnPoin> listAllStatVulnPoin() { Criteria criteria = getSession().createCriteria(AsseKnowStatVulnPoin.class) .addOrder(Order.asc("id")); return criteria.list(); } /** * 根据静态脆弱点类别返回静态脆弱点列表 * @return 静态脆弱点列表 **/ public List<AsseKnowStatVulnPoin> listStatVulnPoinByKind( AsseKnowStatVulnKind vulnKind) { List list = getHibernateTemplate().find("from AsseKnowStatVulnPoin statVulnPoin " + "where statVulnPoin.vulnKind = ?",vulnKind); return list; } }