package com.alibaba.doris.admin.dao.impl;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.springframework.orm.ibatis.SqlMapClientCallback;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.alibaba.doris.admin.dao.PrefLogDao;
import com.alibaba.doris.admin.dataobject.PrefLogDO;
import com.alibaba.doris.admin.support.PrefQuery;
import com.ibatis.sqlmap.client.SqlMapExecutor;
public class PrefLogDaoImpl extends SqlMapClientDaoSupport implements PrefLogDao {
public void insert(PrefLogDO record) {
getSqlMapClientTemplate().insert("PREF_LOG.insert", record);
}
public PrefLogDO selectByPrimaryKey(Integer id) {
PrefLogDO key = new PrefLogDO();
key.setId(id);
PrefLogDO record = (PrefLogDO) getSqlMapClientTemplate().queryForObject(
"PREF_LOG.selectByPrimaryKey", key);
return record;
}
public void batchInsert(final List<PrefLogDO> reports) {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
executor.startBatch();
for (PrefLogDO record : reports) {
if (record != null) {
executor.insert("PREF_LOG.insert", record);
}
}
executor.executeBatch();
return "";
}
});
}
public List<PrefLogDO> statByQuery(PrefQuery query) {
return getSqlMapClientTemplate().queryForList("PREF_LOG.statByQuery", query);
}
public List<PrefLogDO> statWithNameSpace(PrefQuery query) {
return getSqlMapClientTemplate().queryForList("PREF_LOG.statWithNameSpaceView", query);
}
public List<PrefLogDO> statWithPhysicalId(PrefQuery query) {
return getSqlMapClientTemplate().queryForList("PREF_LOG.statWithPhysicalIdView", query);
}
public Date getMinTimeStart(Date before) {
Date date = (Date) getSqlMapClientTemplate().queryForObject("PREF_LOG.queryMinTimeStart",
before);
return date;
}
public List<PrefLogDO> queryNeedArchive(Date timeStart, Date timeEnd) {
HashMap query = new HashMap();
query.put("timeStart", timeStart);
query.put("timeEnd", timeEnd);
return getSqlMapClientTemplate().queryForList("PREF_LOG.queryNeedArchive", query);
}
public void deleteRecoredByTime(Date timeStart, Date timeEnd) {
HashMap query = new HashMap();
query.put("timeStart", timeStart);
query.put("timeEnd", timeEnd);
getSqlMapClientTemplate().delete("PREF_LOG.deleteRecoredByTime", query);
}
public void batchInsertToArchived(final List<PrefLogDO> reports) {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
executor.startBatch();
for (PrefLogDO record : reports) {
if (record != null) {
executor.insert("PREF_LOG_ACHIVED.insert", record);
}
}
executor.executeBatch();
return "";
}
});
}
public void deleteArchivedRecoredByTime(Date before) {
HashMap query = new HashMap();
query.put("timeEnd", before);
getSqlMapClientTemplate().delete("PREF_LOG_ACHIVED.deleteArchivedRecoredByTime", query);
}
}