package com.ucap.netcheck.dao.impl;
import java.util.arraylist;
import java.util.list;
import org.hibernate.query;
import org.hibernate.session;
import org.hibernate.sessionfactory;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.repository;
import org.springframework.transaction.annotation.transactional;
import com.ucap.netcheck.combination.beans.mainpageresultcombinationbean;
import com.ucap.netcheck.common.page;
import com.ucap.netcheck.common.dao.basedao;
import com.ucap.netcheck.dao.isinglerejectdao;
import com.ucap.netcheck.entity.mainpagescanfail;
import com.ucap.netcheck.entity.mainpagescanresult;
import com.ucap.netcheck.exception.daoexception;
/**
* @title: checkmainpageresultdaoimpl.java
* @package com.ucap.netcheck.dao.impl
* @description:
* @author
* @date 2015-4-8 下午5:04:34
* @version v1.0
*/
@repository
@transactional
public class singlerejectdaoimpl extends basedao implements isinglerejectdao {
@autowired
private sessionfactory sessionfactory;
@suppresswarnings("unchecked")
public mainpagescanresult querymainpagescanresultunique(object... params) {
try {
string sql = "from mainpagescanresult m "
+ "where m.errorpercent > 5.0 " + "and m.inneruuid =? "
+ "and m.taskid =? ";
session session = sessionfactory.getcurrentsession();
list<mainpagescanresult> list = session.createquery(sql)
.setparameter(0,(string)params[0])
.setparameter(1,(integer)params[1])
.list();
if (!list.isempty()) {
return list.get(0);
}
} catch (exception e) {
e.printstacktrace();
}
return null;
}
/**
* querymainpagescanfailbyid(通過這個方法實作查找首頁掃描失敗的結果)
*
* @title: querymainpagescanfailbyid
* @description:
* @param @param pageno
* @param @param pagerow
* @param @param id
* @param @return 設定檔案
* @return page 傳回類型
* @throws
*/
public page querymainpagescanfailbyid(int pageno, int pagerow,integer id) {
list<object> params = new arraylist<object>();
string hql = "from mainpagescanfail m where m.mainpagescanid = ? ";
params.add(id);
page page = this.querybypage(hql, pageno, pagerow, params);
return page;
throw new daoexception("分頁查詢所有->error", e);
public list<mainpagescanfail> querymainpagescanfaillistbyid(integer id) {
string hql = "from mainpagescanfail m where m.mainpagescanid =:mainpagescanid ";
list<mainpagescanfail> list = sessionfactory.getcurrentsession()
.createquery(hql)
.setparameter("mainpagescanid", id)
.list();
return list;
/**
* querymainpagescaneresultstatistics(這個方法實作對這個表的資訊進行統計)
*
* @title: querymainpagescaneresultstatistics
* @description: 這個方法實作對這個表的資訊進行統計
* @param @param objs
* @param @return 設定檔案
* @return page<mainpagescanresult> 傳回類型
* @throws
*/
public mainpageresultcombinationbean querymainpagescaneresultstatistics(
object... objs) {
string hql = "select new com.ucap.netcheck.combination.beans.mainpageresultcombinationbean("
+ " min(m.taskstarttime),max(m.taskendtime),count(m.inneruuid),max(m.totalscannum),max(m.failnum)) "
+ " from "
+ mainpagescanresult.class.getsimplename()
+ " m where m.inneruuid = ? " + " and m.taskid = ? ";
list<mainpageresultcombinationbean> list = sessionfactory
.getcurrentsession().createquery(hql)
.setparameter(0, (string) objs[0]).setparameter(1, objs[1])
.list();
return (!list.isempty() ? (mainpageresultcombinationbean) list
.get(0) : null);
@suppresswarnings({ "rawtypes", "unchecked"})
@override
public page querymainpageupdateresultbypage(int pageno, int pagerow,
stringbuilder sql = new stringbuilder(
"select " +
"cm.id as id," +
"cm.task_id as taskid," +
"cm.inneruuid as inneruuid," +
"cm.checksystaskid as checksystaskid," +
"cm.url as url," +
"cm.first_channel as firstchannel," +
"cm.second_channel as secondchannel," +
"cm.chanel_name as chanelname," +
"cm.title as title," +
"cm.img_url as imgurl," +
"cm.lastmodifytime as lastmodifytime, " +
"cm.show_time as showtime," +
"cm.scantime as scantime," +
"cm.isreject as isreject " +
"from cpu_mp as cm " +
"where cm.inneruuid =? " +
"and cm.task_id =? " +
"and cm.isreject = 1 "
);
query query = sessionfactory
.getcurrentsession()
.createsqlquery(sql.tostring())
.setparameter(0, (string) objs[0])
.setparameter(1, (integer)objs[1]);
page page = new page();
page.setpagenum(pageno);
page.setnumperpage(pagerow);
page.setallrows(query.list().size());
int allpages = page.getallrows() / page.getnumperpage();
if (page.getallrows() % page.getnumperpage() == 0) {
page.setallpages(allpages); // 總頁數
} else {
page.setallpages(allpages + 1); // 總頁數
query.setfirstresult((pageno - 1) * pagerow);
query.setmaxresults(pagerow);
//集合
list<object[]> list = query.list();
page.setrecordlist(list);
return page;
@suppresswarnings({"unchecked"})
public list<object[]> querymainpageupdateresultbycondition(object... objs) {
return list;
}
========================================================
通過sql将查詢的結果傳回到一個bean中
@suppresswarnings({ "unchecked" })
@transactional(propagation = propagation.required)
public page<communityactivity> queryjoinedactivity(int pageno, int pagerow,
int userid) {
// 分頁實體
page<communityactivity> page = new page<communityactivity>();
page.setpagenum(pageno);
page.setnumperpage(pagerow);
string sql = "select ac.* from dm_commuinty_activity"
+ " ac where ac.id in(select t.activity_id from dm_activity_user t "
+ " where t.user_id = " + userid + ")";
// 查詢
query query = session.createsqlquery(sql).addentity(
communityactivity.class);
// 總記錄數
page.setallrows(query.list().size());
// page.setallrows(((number) query.uniqueresult()).intvalue());
query.setfirstresult((pageno - 1) * pagerow);
query.setmaxresults(pagerow);
// 集合
page.setrecordlist(query.list());
int allpages = page.getallrows() / page.getnumperpage();
} catch (exception ex) {
throw new daoexception("分頁查詢所有->error", ex);
return page;
===========================
查詢不同表中内容,并将查到的不同表中的内容放到list中
@override
public list getattranddeadresult(int taskid, int targetid) {
session session = sessionfactory.getcurrentsession();
// string sql = "select d.depth, p.imgurl, d.point, d.scantime, "
// + "d.title, d.url, p.parenttitle, p.parenturl,d.id,d.urltype,d.code "
// + "from deadurlresult d, checkresult c, deadurl_parent_info p "
// + "where d.taskid=c.taskid and d.id=p.deadid and d.taskid=:tid and c.targetid=:tgid "
// + "and (d.urltype=0 or d.urltype=1 or d.urltype=2 or d.urltype=3 "
// + "or d.urltype=4 or d.urltype=7 or d.urltype=8) ";
string sql = "select d.depth, p.imgurl, d.point, d.scantime, d.title, d.url, p.parenttitle, p.parenturl,d.id,d.urltype,d.code " +
"from " +
"(select * from deadurlresult c where " +
"c.taskid=:tid " +
"and (c.urltype=0 or c.urltype=1 or c.urltype=2 or c.urltype=3 " +
"or c.urltype=4 or c.urltype=7 or c.urltype=8)" +
") d left join deadurl_parent_info p on d.id=p.deadid";
query sqlquery = session.createsqlquery(sql);
sqlquery.setparameter("tid", taskid);
//sqlquery.setparameter("tgid", targetid);
return sqlquery.list();
=================================================================
* 通過這方法實作爆粗廣告日志資訊
public list<advertisestatisticresult> gainstatisticresult(integer adpageid,
date startdate, date enddate) {
list<advertisestatisticresult> dataresults = new arraylist<advertisestatisticresult>();
string sql = "select t2.ad_position_name,count(t.ad_pos_id) " +
"from dm_advertise_access_log t,dm_advertise_position t2 " +
"where t.adpageid = ? " +
"and t2.id = t.ad_pos_id " +
"group by t2.ad_position_name,t.ad_pos_id";
list list = sessionfactory.getcurrentsession().createsqlquery(sql)
.setparameter(0, adpageid)
//.setparameter(1, startdate)
//.setparameter(2, enddate)
for (int i = 0; i < list.size(); i++) {
advertisestatisticresult asr = new advertisestatisticresult();
asr.setname((string)((object[])list.get(i))[0]);
asr.sety(integer.valueof((((object[])list.get(i))[1]).tostring()).intvalue()); //這裡的y是int類型的,這裡不能直接通過(integer)的方式進行強制轉換得到,否則出現
//java.lang.classcastexception: java.math.bigdecimal cannot be cast to java.lang.integer
dataresults.add(asr);
}
return dataresults;
==========================================================================================================
查詢的内容轉成制定的實體:
// 附件
@transactional(propagation = propagation.required)
public list<affixbean> getaffix() {
session session = sessionfactory.getcurrentsession();
string hql = "select a.nrid,a.file_type,a.file_path,a.file_name from dm_affix a";
query query = session.createsqlquery(hql)
.addscalar("nrid", standardbasictypes.integer)
.addscalar("file_type", standardbasictypes.string)
.addscalar("file_path", standardbasictypes.string)
.addscalar("file_name", standardbasictypes.string)
.setresulttransformer(transformers.aliastobean(affixbean.class));
list<affixbean> list = query.list();
return list;
//affixbean的内容如下:
package com.kuman.cartoon.common.bean;
public class affixbean {
* 内容id
*/
private integer nrid;
* 檔案路徑
*/
private string file_path;
/**
* 檔案類型
private string file_type;
* 檔案名
private string file_name;
public integer getnrid() {
return nrid;
public void setnrid(integer nrid) {
this.nrid = nrid;
public string getfile_path() {
return file_path;
public void setfile_path(string file_path) {
this.file_path = file_path;
public string getfile_type() {
return file_type;
public void setfile_type(string file_type) {
this.file_type = file_type;
public string getfile_name() {
return file_name;
public void setfile_name(string file_name) {
this.file_name = file_name;