- 浏览: 235324 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
netwelfare:
文章的格式有点乱啊,看起来很费事啊。推荐看这个系列的json教 ...
java 操作JSON -
yangqingandjay:
ijoi刚好一个月[color=orange][align=c ...
spring 定时器配置 -
Jxdwuao:
不错, 很好用
spring 定时器配置 -
1870702720:
3楼说的可以,之前我一直以为想配置在一个定时器中,可是实现不了 ...
spring 定时器配置 -
taiwei.peng:
你可以配置两个定时器,这是我个人的想法,仅供参考。
spring 定时器配置
package com.richsum.hyoa.dao.impl;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.SQLQuery;
import org.hibernate.Query;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.hibernate.transform.Transformers;
import org.hibernate.type.Type;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.richsum.hyoa.dao.GenericEntityDao;
import com.richsum.hyoa.dto.PageModel;
import com.richsum.hyoa.model.BaseModel;
import com.richsum.hyoa.model.OfficeDispatch;
import com.richsum.hyoa.web.PagerContext;
/**
* Abstract base class for a DAO
*
* @author Leo
*/
public abstract class GenericEntityDaoImpl<T extends BaseModel> extends
HibernateDaoSupport implements GenericEntityDao<T> {
/** the logger */
private static final Log LOG = LogFactory
.getLog(GenericEntityDaoImpl.class);
/**
* The class of the entity of this DAO.
*/
private Class<T> entityClass;
/**
* Construct this DAO for the supplied model class.
*
* @param entityClass
* The model class that is persisted.
*/
public GenericEntityDaoImpl(final Class<T> entityClass) {
this.entityClass = entityClass;
}
public int countAll() {
Criteria criteria = getSession().createCriteria(entityClass);
criteria.setProjection(Projections.rowCount());
return (Integer) criteria.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<T> listAll() {
LOG.debug("Get all" + entityClass.getSimpleName());
List<T> values = (List<T>) getHibernateTemplate().findByCriteria(
DetachedCriteria.forClass(entityClass));
return values;
}
@SuppressWarnings("unchecked")
public T get(Long id) {
LOG.debug("Get all" + entityClass.getSimpleName() + " with id " + id);
return (T) getHibernateTemplate().get(entityClass, id.longValue());
}
public <E> List<E> findByCriteria(String sqlStmt, Class<E> entityClass,
List args, Map map) {
SQLQuery query = this.getSession().createSQLQuery(sqlStmt);
query.setResultTransformer(Transformers.aliasToBean(entityClass));
if (args != null) {
int size = args.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, args.get(i));
}
}
if (map != null) {
Iterator keyIt = map.keySet().iterator();
while (keyIt.hasNext()) {
Object key = keyIt.next();
Object val = map.get(key);
query.addScalar((String) key, (Type) val);
}
}
return (List<E>) query.list();
}
public <E> List<E> findByCriteria(String sqlStmt, Class<E> entityClass,
List args) {
return this.findByCriteria(sqlStmt, entityClass, args, null);
}
public List findByCriteriaByHQL(String sqlStmt, List args) {
Query query = this.getSession().createQuery(sqlStmt);
if (args != null) {
int size = args.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, args.get(i));
}
}
return query.list();
}
public void save(T item) {
LOG.debug("save new item");
item.prePersist();
getHibernateTemplate().saveOrUpdate(item);
}
public void update(T item) {
LOG.debug("update item");
item.prePersist();
// getHibernateTemplate().merge(item);
getHibernateTemplate().update(item);
}
public void delete(T item) {
LOG.debug("update item");
getHibernateTemplate().delete(item);
}
/**
* {@inheritDoc}
*/
public void evictFromHibernate(T item) {
getHibernateTemplate().flush();
getHibernateTemplate().evict(item);
}
/**
* 分页查询
* @param jpql hql 语句
* @param page 当前页
* @param size 每页的记录数
* @return
*/
public List pageSearch(String hql, Integer pageNo, Integer pageSize) {
return this.pageSearchCriteriaByHQL(hql,null,pageNo,pageSize);
}
/**
* List条件查询
*
* @param sql
* hql 语句
* @param argsList
* 参数集合
* @param pageNo
* 当前页
* @param pageSize
* 每页的记录数
* @return
*/
public List pageSearchCriteriaByHQL(String hql, List argsList,
Integer pageNo, Integer pageSize) {
try {
if (pageSize == 0) {
pageSize = 15;
}
Query query = this.getSession().createQuery(hql)
.setFirstResult((pageNo - 1) * pageSize)
.setMaxResults(pageSize);
if (null != argsList && argsList.size() > 0) {
int size = argsList.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, argsList.get(i));
}
}
return query.list();
} catch (Exception e) {
System.out.println("List条件查询异常。");
e.printStackTrace();
}
return null;
}
/**
* 计算总条数
* @param hql 查询语句
* @return 总页数
*/
public int countPageSize(String hql, List paraList) {
int index = hql.indexOf("from");
hql = "select count(*) " + hql.substring(index);
return ((Number) this.findUniqueResult(hql, paraList)).intValue();
}
@Override
public PageModel<T> queryPageByHQL(String hql, List argsList) {
PageModel<T> pm = new PageModel<T>();
List list = pageSearchCriteriaByHQL(hql,argsList,PagerContext.getPageNo(),PagerContext.getPageSize());
pm.setDatas(list);
pm.setRecordCount(this.countPageSize(hql, argsList));
pm.setPageNo(PagerContext.getPageNo());
pm.setPageSize(PagerContext.getPageSize());
return pm;
}
@Override
public int queryCountPageSize(String hql){
int index = hql.indexOf("from");
hql = "select count(*) " + hql.substring(index);
Query query = this.getSession().createQuery(hql);
return ((Number) query.uniqueResult()).intValue();
}
@Override
public PageModel<T> queryCountPageHql(String hql){
PageModel<T> pm = new PageModel<T>();
pm.setDatas( pageSearch(hql, PagerContext.getPageNo(),PagerContext.getPageSize()));
pm.setRecordCount(queryCountPageSize(hql));
pm.setPageNo(PagerContext.getPageNo());
pm.setPageSize(PagerContext.getPageSize());
return pm;
}
@Override
public Object findUniqueResult(String hql, List paraList) {
Query query = this.getSession().createQuery(hql);
if (paraList != null) {
for (int i = 0; i < paraList.size(); i++) {
query.setParameter(i, paraList.get(i));
}
}
return query.uniqueResult();
}
@Override
public int excuteUpdateBySql(String sql, List list) {
SQLQuery query = this.getSession().createSQLQuery(sql);
if(list != null){
for(int i=0; i < list.size(); i++){
query.setParameter(i, list.get(i));
}
}
return query.executeUpdate();
}
@Override
public Object findUniqueResultBySQL(String sql, List list) {
SQLQuery query = this.getSession().createSQLQuery(sql);
if(list != null){
for(int i=0; i < list.size(); i++){
query.setParameter(i, list.get(i));
}
}
return query.uniqueResult();
}
}
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.SQLQuery;
import org.hibernate.Query;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Projections;
import org.hibernate.transform.Transformers;
import org.hibernate.type.Type;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.richsum.hyoa.dao.GenericEntityDao;
import com.richsum.hyoa.dto.PageModel;
import com.richsum.hyoa.model.BaseModel;
import com.richsum.hyoa.model.OfficeDispatch;
import com.richsum.hyoa.web.PagerContext;
/**
* Abstract base class for a DAO
*
* @author Leo
*/
public abstract class GenericEntityDaoImpl<T extends BaseModel> extends
HibernateDaoSupport implements GenericEntityDao<T> {
/** the logger */
private static final Log LOG = LogFactory
.getLog(GenericEntityDaoImpl.class);
/**
* The class of the entity of this DAO.
*/
private Class<T> entityClass;
/**
* Construct this DAO for the supplied model class.
*
* @param entityClass
* The model class that is persisted.
*/
public GenericEntityDaoImpl(final Class<T> entityClass) {
this.entityClass = entityClass;
}
public int countAll() {
Criteria criteria = getSession().createCriteria(entityClass);
criteria.setProjection(Projections.rowCount());
return (Integer) criteria.uniqueResult();
}
@SuppressWarnings("unchecked")
public List<T> listAll() {
LOG.debug("Get all" + entityClass.getSimpleName());
List<T> values = (List<T>) getHibernateTemplate().findByCriteria(
DetachedCriteria.forClass(entityClass));
return values;
}
@SuppressWarnings("unchecked")
public T get(Long id) {
LOG.debug("Get all" + entityClass.getSimpleName() + " with id " + id);
return (T) getHibernateTemplate().get(entityClass, id.longValue());
}
public <E> List<E> findByCriteria(String sqlStmt, Class<E> entityClass,
List args, Map map) {
SQLQuery query = this.getSession().createSQLQuery(sqlStmt);
query.setResultTransformer(Transformers.aliasToBean(entityClass));
if (args != null) {
int size = args.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, args.get(i));
}
}
if (map != null) {
Iterator keyIt = map.keySet().iterator();
while (keyIt.hasNext()) {
Object key = keyIt.next();
Object val = map.get(key);
query.addScalar((String) key, (Type) val);
}
}
return (List<E>) query.list();
}
public <E> List<E> findByCriteria(String sqlStmt, Class<E> entityClass,
List args) {
return this.findByCriteria(sqlStmt, entityClass, args, null);
}
public List findByCriteriaByHQL(String sqlStmt, List args) {
Query query = this.getSession().createQuery(sqlStmt);
if (args != null) {
int size = args.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, args.get(i));
}
}
return query.list();
}
public void save(T item) {
LOG.debug("save new item");
item.prePersist();
getHibernateTemplate().saveOrUpdate(item);
}
public void update(T item) {
LOG.debug("update item");
item.prePersist();
// getHibernateTemplate().merge(item);
getHibernateTemplate().update(item);
}
public void delete(T item) {
LOG.debug("update item");
getHibernateTemplate().delete(item);
}
/**
* {@inheritDoc}
*/
public void evictFromHibernate(T item) {
getHibernateTemplate().flush();
getHibernateTemplate().evict(item);
}
/**
* 分页查询
* @param jpql hql 语句
* @param page 当前页
* @param size 每页的记录数
* @return
*/
public List pageSearch(String hql, Integer pageNo, Integer pageSize) {
return this.pageSearchCriteriaByHQL(hql,null,pageNo,pageSize);
}
/**
* List条件查询
*
* @param sql
* hql 语句
* @param argsList
* 参数集合
* @param pageNo
* 当前页
* @param pageSize
* 每页的记录数
* @return
*/
public List pageSearchCriteriaByHQL(String hql, List argsList,
Integer pageNo, Integer pageSize) {
try {
if (pageSize == 0) {
pageSize = 15;
}
Query query = this.getSession().createQuery(hql)
.setFirstResult((pageNo - 1) * pageSize)
.setMaxResults(pageSize);
if (null != argsList && argsList.size() > 0) {
int size = argsList.size();
for (int i = 0; i < size; i++) {
query.setParameter(i, argsList.get(i));
}
}
return query.list();
} catch (Exception e) {
System.out.println("List条件查询异常。");
e.printStackTrace();
}
return null;
}
/**
* 计算总条数
* @param hql 查询语句
* @return 总页数
*/
public int countPageSize(String hql, List paraList) {
int index = hql.indexOf("from");
hql = "select count(*) " + hql.substring(index);
return ((Number) this.findUniqueResult(hql, paraList)).intValue();
}
@Override
public PageModel<T> queryPageByHQL(String hql, List argsList) {
PageModel<T> pm = new PageModel<T>();
List list = pageSearchCriteriaByHQL(hql,argsList,PagerContext.getPageNo(),PagerContext.getPageSize());
pm.setDatas(list);
pm.setRecordCount(this.countPageSize(hql, argsList));
pm.setPageNo(PagerContext.getPageNo());
pm.setPageSize(PagerContext.getPageSize());
return pm;
}
@Override
public int queryCountPageSize(String hql){
int index = hql.indexOf("from");
hql = "select count(*) " + hql.substring(index);
Query query = this.getSession().createQuery(hql);
return ((Number) query.uniqueResult()).intValue();
}
@Override
public PageModel<T> queryCountPageHql(String hql){
PageModel<T> pm = new PageModel<T>();
pm.setDatas( pageSearch(hql, PagerContext.getPageNo(),PagerContext.getPageSize()));
pm.setRecordCount(queryCountPageSize(hql));
pm.setPageNo(PagerContext.getPageNo());
pm.setPageSize(PagerContext.getPageSize());
return pm;
}
@Override
public Object findUniqueResult(String hql, List paraList) {
Query query = this.getSession().createQuery(hql);
if (paraList != null) {
for (int i = 0; i < paraList.size(); i++) {
query.setParameter(i, paraList.get(i));
}
}
return query.uniqueResult();
}
@Override
public int excuteUpdateBySql(String sql, List list) {
SQLQuery query = this.getSession().createSQLQuery(sql);
if(list != null){
for(int i=0; i < list.size(); i++){
query.setParameter(i, list.get(i));
}
}
return query.executeUpdate();
}
@Override
public Object findUniqueResultBySQL(String sql, List list) {
SQLQuery query = this.getSession().createSQLQuery(sql);
if(list != null){
for(int i=0; i < list.size(); i++){
query.setParameter(i, list.get(i));
}
}
return query.uniqueResult();
}
}
发表评论
-
Elasticsearch 笔记
2019-09-25 15:33 317查询数据结构 GET ibmpdb_hk/_mapping ... -
模块之间调用form 表单提交
2018-11-30 14:11 438package com.soft.util; imp ... -
ELK搭建笔记
2018-11-20 16:41 367一. 安装elasticsearch 1.yum安装 ... -
Mybatis xml 写法
2017-09-28 11:14 603<?xml version="1.0&qu ... -
maven
2017-07-03 14:48 474项目中pom.xml 文件 <repositorie ... -
qq 微信第三方登录
2017-06-20 15:53 0QQ互联 https://connect.qq.com ... -
Active Mq 扫盲
2017-05-17 19:33 3981.下载ActiveMQ 去官方网站下载:http://a ... -
金融知识点
2017-04-15 16:24 0国信证券地址 http://weixin.guosen.c ... -
java 集合初始化
2017-01-04 14:55 433ArrayList1.ArrayList构造一个默认初始容 ... -
log 4j
2017-09-28 10:51 401### set log levels ### log4j ... -
POI 导出Excel
2016-08-15 11:07 470import java.io.OutputStream; ... -
demo
2016-07-29 17:17 0<div class="iteye-blog- ... -
ETL
2016-05-09 11:25 3551.在D 视图下创建 数据源 在工具栏中找到sourc ... -
java 配置linux 启动节点
2016-04-28 17:06 721source ../jar.cfg nohup java ... -
搭建框架
2016-02-29 15:41 0package com.soft.util; import ... -
Java 对集合类的操作缓存
2015-05-12 15:08 1709public class CapacityGrapCache ... -
hibernate 分页方法
2015-04-03 16:09 804@Repository public class BulkCa ... -
Spring 配置
2013-06-05 20:34 861<?xml version="1.0" ... -
Hibernate 注解映射联合主键的三种方式
2012-10-31 10:27 1115联合主键用Hibernate注解映射方式主要有三种:第一、将联 ... -
jdbc 操作 批量插入数据
2012-10-21 15:20 927package com.soft.dzkj.dao; ...
相关推荐
总结,Java Web项目中的分页通用实现涉及到数据库查询、参数传递、前后端交互等多个环节。通过封装分页组件,我们可以将这些复杂逻辑模块化,便于在不同的项目中复用,从而提升开发质量和效率。这个DEMO正是为了帮助...
Java 分页技术是Java开发中常见的一种数据处理方式,尤其在大数据量的Web应用中,为了提高用户体验并减轻服务器压力,通常需要实现分页显示功能。这个"java通用分页代码实例"提供了一种适用于任意数据库的解决方案,...
总的来说,"SSH+Oracle通用分页"是Java Web开发中常见的需求,它涉及到SSH框架的集成使用和Oracle数据库的高效查询策略。理解并熟练掌握这些知识,对于开发高性能、用户体验良好的Web应用至关重要。在实际项目中,还...
在Java开发中,分页是数据管理中一个非常常见的需求,尤其在大数据量的Web应用中,为了提高用户体验,我们通常需要将数据分批次展示,而不是一次性加载所有数据。这不仅可以减少服务器的压力,还能使用户界面更加...
开发环境:SpringBoot+SSM,同样适合SpringBoot,具备一定Maven项目基础初学者,详细说明地址http://blog.csdn.net/fjekin/article/details/75541573
超级强悍的java web通用分页组件,只要简单的一条sql语句就可以轻松的实现分页,目前对oracle,SQL Server2005,SQL server200,mysql都做了实现,程序通过接口来封装,你可以实现对其他数据库的分页。里面有调用例子...
【SSH+Oracle 整合详解】 SSH(Struts2、Spring、Hibernate)是Java开发中常用的三大开源框架,它们各自负责Web应用的不同层面:...理解并掌握这些知识点,将有助于你理解和使用这个整合的SSH+Oracle分页解决方案。
Java通用分页是Java开发中常见的一种功能,用于在大量数据中实现高效的浏览和查询。在Web应用中,尤其是在数据库操作中,分页是必不可少的,它可以提高用户体验,避免一次性加载过多数据导致页面响应变慢。这个源码...
在Java开发中,分页是常见的功能,尤其在构建后台服务时,为了处理大量数据并提高用户体验,分页显得尤为重要。本资源提供了通用的Java分页后端服务代码,可以帮助开发者快速实现数据的分页查询功能。以下是相关知识...
本教程将详细讲解如何使用JSP(JavaServer Pages)技术来实现一个通用的分页标签,以便在各种项目中复用。 首先,JSP是Java平台上的动态网页技术,它允许开发人员在HTML或者XML文档中嵌入Java代码。在分页场景下,...
3. `BasicService.java`: 基础服务类,可能包含了数据库操作的通用方法,如CRUD操作,但不包括具体的分页实现。 4. `Action.java.txt`: 这看起来像是一个ACTION类,通常在Java Web应用中用于处理用户请求,它可能...
总的来说,Java Mybatis通用分页插件PageHelper极大地简化了Java开发人员在Mybatis中的分页操作,提高了开发效率,降低了出错的可能性,是Mybatis项目中的得力助手。通过阅读“说明.txt”和解压后的“Mybatis-...
Mybatis通用分页插件是Java开发中广泛使用的ORM(对象关系映射)框架扩展,主要针对Mybatis进行优化,提供了高效便捷的分页功能。这个插件的目的是简化在数据库查询时的分页操作,使得开发者能够更专注于业务逻辑,...
综上所述,这个项目利用`PageUtil.java`工具类对分页进行了封装,简化了分页查询的过程,提高了开发效率。同时,通过`GroupAction`、`GroupService`、`GroupDao`以及`GroupMapper.xml`的协同工作,实现了从用户请求...
Struts2、Spring、iBatis以及Oracle是Java Web开发中的四大核心组件,它们共同构建了一个强大且灵活的后端架构。在这个实例中,我们将会深入探讨这些技术如何协同工作,实现分页搜索功能和上传附件操作。 1. **...
总的来说,这个资源包提供了一个SSM环境下,结合MySQL和Oracle数据库进行分页查询的实例,对于初学者理解SSM框架与数据库的交互,以及掌握分页查询的实现方法,是非常有价值的参考资料。在实际项目中,合理利用分页...
【jsp通用分页】是指在Java Web开发中,利用JSP技术实现数据库查询结果的分页展示。在处理大量数据时,为了提高用户体验和减轻服务器压力,通常会采用分页的方式来展示数据。JDBC(Java Database Connectivity)作为...
- **通用分页查询格式**: - 每页显示`m`条数据,查询第`n`页的数据。 - **未排序的分页**: ```sql SELECT a.* FROM ( SELECT ROWNUM AS rowno, e.* FROM 表名 e WHERE ROWNUM * n ) a WHERE a.rowno > (n...
此外,通用Mapper还提供了批量更新、分页查询等高级功能,使得在实际开发中更加便捷。 通用Mapper与其他类似工具如MyBatis Generator相比,有以下优点: - **扩展性强**:通用Mapper提供了一系列的插件机制,可以...