- 浏览: 228134 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
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 283查询数据结构 GET ibmpdb_hk/_mapping ... -
模块之间调用form 表单提交
2018-11-30 14:11 380package com.soft.util; imp ... -
ELK搭建笔记
2018-11-20 16:41 341一. 安装elasticsearch 1.yum安装 ... -
Mybatis xml 写法
2017-09-28 11:14 541<?xml version="1.0&qu ... -
maven
2017-07-03 14:48 422项目中pom.xml 文件 <repositorie ... -
qq 微信第三方登录
2017-06-20 15:53 0QQ互联 https://connect.qq.com ... -
Active Mq 扫盲
2017-05-17 19:33 3591.下载ActiveMQ 去官方网站下载:http://a ... -
金融知识点
2017-04-15 16:24 0国信证券地址 http://weixin.guosen.c ... -
java 集合初始化
2017-01-04 14:55 393ArrayList1.ArrayList构造一个默认初始容 ... -
log 4j
2017-09-28 10:51 360### set log levels ### log4j ... -
POI 导出Excel
2016-08-15 11:07 435import java.io.OutputStream; ... -
demo
2016-07-29 17:17 0<div class="iteye-blog- ... -
ETL
2016-05-09 11:25 3081.在D 视图下创建 数据源 在工具栏中找到sourc ... -
java 配置linux 启动节点
2016-04-28 17:06 675source ../jar.cfg nohup java ... -
搭建框架
2016-02-29 15:41 0package com.soft.util; import ... -
Java 对集合类的操作缓存
2015-05-12 15:08 1656public class CapacityGrapCache ... -
hibernate 分页方法
2015-04-03 16:09 771@Repository public class BulkCa ... -
Spring 配置
2013-06-05 20:34 793<?xml version="1.0" ... -
Hibernate 注解映射联合主键的三种方式
2012-10-31 10:27 1074联合主键用Hibernate注解映射方式主要有三种:第一、将联 ... -
jdbc 操作 批量插入数据
2012-10-21 15:20 887package com.soft.dzkj.dao; ...
相关推荐
开发环境:SpringBoot+SSM,同样适合SpringBoot,具备一定Maven项目基础初学者,详细说明地址http://blog.csdn.net/fjekin/article/details/75541573
超级强悍的java web通用分页组件,只要简单的一条sql语句就可以轻松的实现分页,目前对oracle,SQL Server2005,SQL server200,mysql都做了实现,程序通过接口来封装,你可以实现对其他数据库的分页。里面有调用例子...
完美整合(通用分页)SSH+Oracle (需要自己加入jar包,只是源码)
环境: Oracle 9i 本例子使用简单的SQL语句实现Oracle数据库的分页动作。它没有使用PL/SQL语句(比如什么程序包、游标等),只是使用通用的、简单的SQL实现了...分页公式注释非常详细,是非常实用的Oracle分页语句!!
通用的TERADATA、ORACLE数据库分页SQL, 包含在JAVA代码中,其中的Service实现不包含在里面,需要自己实现。
作用:通过传入建好的实体类、对应的java源文件包名、java源文件磁盘绝对路径、xml映射文件磁盘绝对路径后自动生成通用的CURD代码。...4、查询分页PageModel.java类是必须的,实体类需要继承分页通用类PageModel.java
JAVA,JSP,实现各类数据库分页实现大全。通用数据分页实现设计。
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
软件开发思想从面向过程到OOP面向对象,再到AOP面向方面,每一次新思想的提出都能够降低对程序员的要求,加快软件开发的进度。该框架在实现的过程中提出一个新的概念IOP“面向项目的开发”。在这个思想的指导下,...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...
JSEditor 是 Eclipse 下编辑 JavaScript 源码的插件,提供语法高亮以及一些通用的面向对象方法。 Java数据库连接池 BoneCP BoneCP 是一个高性能的开源java数据库连接池实现库。它的设计初衷就是为了提高数据库连接...