package infoweb.dao;
import java.util.List;
import java.util.Iterator;
import infoweb.pojo.Info;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
publicclass InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO {
/**
* 构造函数
*/
public InfoDAOImpl(){
super();
}
/**
* 增加记录
* @param info Info
*/
publicvoid setInfo(Info info)throwsException{
getHibernateTemplate().save(info);
}
/**
* 通过ID取得记录
* @param id String
* @return Info
*/
public Info getInfoById(String id)throwsException{
Info info = (Info) getHibernateTemplate().load(Info.class, id);
return info;
}
/**
* 修改记录
* @param Info info
*/
publicvoid modifyInfo(Info info)throwsException{
getHibernateTemplate().update(info);
}
/**
* 删除记录
* @param Info info
*/
publicvoid removeInfo(Info info)throwsException{
getHibernateTemplate().delete(info);
}
////////////////////////////////////////////////////////
///// ///
/////以下部份不带审核功能 ///
///// ///
////////////////////////////////////////////////////////
/**
* 取记录总数
* @return int
*/
publicint getInfosCount()throwsException{
int count = 0;
String queryString = "select count(*) from Info";
count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
intValue();
return count;
}
/**
* 取所有记录集合
* @return Iterator
*/
publicIterator getAllInfos()throwsException{
Iterator iterator = null;
String queryString = " select info from Info as info order by info.id desc";
List list = getHibernateTemplate().find(queryString);
iterator = list.iterator();
return iterator;
}
/**
* 取记录集合
* @return Iterator
* @param int position, int length
*/
publicIterator getInfos(int position, int length)throwsException{
Iterator iterator = null;
String queryString = " select info from Info as info order by info.id desc";
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
/**
* 取第一条记录
* @throws Exception
* @return Station
*/
public Info getFirstInfo()throwsException{
Iterator iterator = null;
Info info = null;
String queryString = "select info from Info as info order by info.id desc";
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext()){
info = (Info) iterator.next();
}
return info;
}
/**
* 取最后一条记录
* @throws Exception
* @return Station
*/
public Info getLastInfo()throwsException{
Iterator iterator = null;
Info info = null;
String queryString = "select info from Info as info order by info.id asc";
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext()){
info = (Info) iterator.next();
}
return info;
}
////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能Õ吩诵袪 牳鋈撕推笠禒 ///
///// ///
////////////////////////////////////////////////////////
/**
* 取符合条件记录总数, [表中要有 isperson 字段]
* @return int
* @param int isPerson
*/
publicint getInfosCountByIsperson(int isPerson)throwsException{
int count = 0;
String queryString =
"select count(*) from Info as info where info.isperson =" + isPerson;
count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
intValue();
return count;
}
/**
* 取所有符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段]
* @return Iterator
* @param int isPerson
*/
publicIterator getAllInfosByIsperson(int isPerson)throwsException{
Iterator iterator = null;
String queryString = " select info from Info as info where info.isperson =" +
isPerson + " order by info.id desc";
List list = getHibernateTemplate().find(queryString);
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
/**
* 取符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段]
* @return Iterator
* @param int isPerson,int position, int length
*/
publicIterator getInfosByIsperson(int isPerson, int position, int length)throws
Exception{
Iterator iterator = null;
String queryString = " select info from Info as info where info.isperson =" +
isPerson + " order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能Õ吩诵袪 查询部份 ///
///// ///
///////////////////////////////////////////////////////
/**
* 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段]
* @return int
* @param String text
*/
publicint getInfosCount(String text)throwsException{
int count = 0;
count = ((Integer) getHibernateTemplate().iterate(
"select count(*) from Info as info where info.title like '%" + text +
"%'").next()).intValue();
return count;
}
/**
* 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
* @return Iterator
* @param String text
*/
publicIterator getAllInfos(String text)throwsException{
Iterator iterator = null;
String queryString =
" select info from Info as info where info.title like '%" + text +
"%' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
/**
* 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段]
* @return Iterator
* @param String text,int position, int length
*/
publicIterator getInfos(String text, int position, int length)throws
Exception{
Iterator iterator = null;
String queryString =
" select info from Info as info where info.title like '%" + text +
"%' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能Õ吩诵袪 犠⒉嵯喙貭 ///
///// ///
////////////////////////////////////////////////////////
/**
* 取符合条件记录总数.[ 表中要有 registername 字段]
* @return int
* @param String text
*/
publicint getInfosCountByRegisterName(String registerName)throwsException{
int count = 0;
count = ((Integer) getHibernateTemplate().iterate(
"select count(*) from Info as info where info.registername = '" +
registerName + "'").next()).intValue();
return count;
}
/**
* 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername字段]
* @param registername String
* @return Info
*/
public Info getInfoByRegisterName(String registerName)throwsException{
Iterator iterator = null;
Info info = null;
String queryString =
" select info from Info as info where info.registername='" +
registerName + "' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
if(iterator.hasNext()){
info = (Info) iterator.next();
}
return info;
}
/**
* 通过注册名取得所有记录集合.[表中要有 registername字段]
* @param registername String
* @return Iterator
*/
publicIterator getAllInfosByRegisterName(String registerName)throws
Exception{
Iterator iterator = null;
String queryString =
" select info from Info as info where info.registername='" +
registerName + "' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
/**
* 通过注册名取得记录列表.[表中要有 registername字段]
* @param registername String
* @return Iterator
*/
publicIterator getInfosByRegisterName(String registerName, int position,
int length)throwsException{
Iterator iterator = null;
String queryString =
" select info from Info as info where info.registername='" +
registerName + "' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
////////////////////////////////////////////////////////
///// ///
///// 以下部份表中要有特定字段才能Õ吩诵袪 犑餍桶婵闋 ///
///// ///
////////////////////////////////////////////////////////
/**
* 取记录总数.[ 表中要有 board_id 字段]
* @return int
* @param String boardId
*/
publicint getInfosCountByBoard(String boardId)throwsException{
int count = 0;
count = ((Integer) getHibernateTemplate().iterate(
"select count(*) from Info as info where info.boardId = '" + boardId +
"'").next()).intValue();
return count;
}
/**
* 通过版块名取得所有记录集合.[表中要有 board_id字段]
* @param BoardId String
* @return Iterator
*/
publicIterator getAllInfosByBoard(String boardId)throwsException{
Iterator iterator = null;
String queryString = " select info from Info as info where info.boardId='" +
boardId + "' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
/**
* 通过版块名取得记录列表.[表中要有 board_id字段]
* @param BoardId String
* @return Iterator
*/
publicIterator getInfosByBoard(String boardId, int position, int length)throws
Exception{
Iterator iterator = null;
String queryString = " select info from Info as info where info.boardId='" +
boardId + "' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
/**
* 取符合条件记录总数.[ 表中要有 board_id 字段,title] 模糊查询title
* @return int
* @param String boardId ,String text
*/
publicint getInfosCountByBoard(String boardId, String text)throwsException{
int count = 0;
count = ((Integer) getHibernateTemplate().iterate(
"select count(*) from Info as info where info.boardId='" + boardId +
"' and info.title like '%" + text + "%'").next()).intValue();
return count;
}
/**
* 通过版块名取得记录列表.[表中要有 board_id字段] 模糊查询title
* @param String boardID,int position, int length
* @return Iterator
*/
publicIterator getInfosByBoard(String boardId, int position, int length,
String text)throwsException{
Iterator iterator = null;
String queryString = " select info from Info as info where info.boardId='" +
boardId + "' and info.title like '%" + text +
"%' order by info.id desc";
//创建查询
Query query = getHibernateTemplate().createQuery(getSession(), queryString);
//设置游标的起始点
query.setFirstResult(position);
//设置游标的长度
query.setMaxResults(length);
//记录生成
List list = query.list();
//把查询到的结果放入迭代器
iterator = list.iterator();
return iterator;
}
|