package edu.sjtu.infosec.ismp.manager.RAM.dao.impl; import java.util.List; import org.hibernate.Criteria; import org.hibernate.criterion.Expression; import org.hibernate.criterion.Order; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import edu.sjtu.infosec.ismp.manager.RAM.dao.StatCVEThreDao; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowStatCVEThre; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowStatThreKind; import edu.sjtu.infosec.ismp.manager.comm.model.page.Page; /** * 数据层 知识库静态漏洞威胁Dao实现类. **/ public class StatCVEThreDaoImpl extends HibernateDaoSupport implements StatCVEThreDao{ /** * 查询静态漏洞威胁 * @param id * 静态漏洞威胁id * @return 静态漏洞威胁对象 **/ public AsseKnowStatCVEThre find(Integer id) { AsseKnowStatCVEThre statCVEthre=null; List list = getHibernateTemplate().find("from AsseKnowStatCVEThre where id=?", id); if(list!=null&&list.size()>0){ statCVEthre= (AsseKnowStatCVEThre) list.get(0); } return statCVEthre; } /** * 查询静态漏洞威胁 * @param cveId * CVE_ID * @return 静态漏洞威胁对象 **/ public List find(String cveId) { AsseKnowStatCVEThre statCVEThre = null; List list = getHibernateTemplate().find("from AsseKnowStatCVEThre where cveId=?", cveId); return list; } /** * 查询静态漏洞威胁数量 * @return 静态漏洞威胁数量 **/ public int getCount() { Criteria criteria = getSession().createCriteria(AsseKnowStatCVEThre.class) .addOrder(Order.asc("id")); return 0;//count(criteria); } /** * 返回所有静态漏洞威胁 * @return 静态漏洞威胁列表 **/ public List<AsseKnowStatCVEThre> listAllStatCVEThre() { Criteria criteria = getSession().createCriteria(AsseKnowStatCVEThre.class) .addOrder(Order.asc("id")); return criteria.list(); } /** * 根据静态威胁类别返回静态漏洞威胁列表 * @param statThreKind * 静态威胁类别 * @return 静态威胁列表 **/ public List<AsseKnowStatCVEThre> listStatCVEThre( AsseKnowStatThreKind statThreKind) { Criteria criteria = getSession().createCriteria(AsseKnowStatCVEThre.class) .addOrder(Order.asc("id")); if(statThreKind!=null) { criteria.add(Expression.eq("threKind", statThreKind)); } return criteria.list(); } /** * 根据静态威胁编号返回静态漏洞威胁列表 * @param threCode * 静态威胁编号 * @return 静态漏洞威胁列表 **/ public List<AsseKnowStatCVEThre> listStatCVEThre(String threCode) { Criteria criteria = getSession().createCriteria(AsseKnowStatCVEThre.class) .addOrder(Order.asc("id")); if(threCode!=null && !"".equals(threCode)) { criteria.add(Expression.eq("threCode", threCode)); } return criteria.list(); } /** * 查询静态漏洞威胁分页记录 * @param page * 分页对象 * @return 分页记录列表 **/ public List<AsseKnowStatCVEThre> listStatCVEThrePage(Page page) { Criteria criteria = getSession().createCriteria(AsseKnowStatCVEThre.class) .addOrder(Order.asc("id")); if(page != null) { criteria.setFirstResult(page.getBeginIndex()) .setMaxResults(page.getEveryPage()); } return criteria.list(); } /** * 删除静态漏洞威胁对象 * @param statCVEThre * 静态漏洞威胁对象 **/ public void remove(AsseKnowStatCVEThre statCVEThre) { getHibernateTemplate().delete(statCVEThre); } /** * 保存/更新静态漏洞威胁对象 * @param statCVEThre * 静态漏洞威胁对象 **/ public void saveOrUpdate(AsseKnowStatCVEThre statCVEThre) { getHibernateTemplate().saveOrUpdate(statCVEThre); } @SuppressWarnings("unchecked") public List<AsseKnowStatCVEThre> listStatCVEThreByCVEIdScale(List CVEIdList) { Criteria criteria = getSession().createCriteria(AsseKnowStatCVEThre.class); if(CVEIdList != null && CVEIdList.size()>0) { criteria.add(Expression.in("cveId", CVEIdList)); }else{ criteria.add(Expression.eq("cveId", "0")); } List<AsseKnowStatCVEThre> list = criteria.list(); return list; } }