package com.jronline.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List; import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; //import com.jkjshoponline.entity.OrderOfMembercenterDTO; public abstract class CommonDAOImpl extends HibernateDaoSupport{ //执行SQL原生查询
public List findHqlForSql(final String hql) { List list = getHibernateTemplate().executeFind(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createSQLQuery(hql);
return query.list();
}
});
return list;
} /**
* 分页信息
*
* @param hql
* @param first
* @param max
* @return List
*/
public List findListForPage(final String hql, final int pageId, final int pageSize) {
List list = getHibernateTemplate().executeFind(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
int comp=(pageId-1)*pageSize;
query.setFirstResult(comp);// 第一行
query.setMaxResults(pageSize);// 最大行
List list = query.list();
return list;
}
});
return list;
} /**
* sql by qbzuo 2012-10-15
* 分页信息
*
* @param sql
* @param first
* @param max
* @return List
*/
public List findSQLListForPage(final String sql, final int pageId, final int pageSize) {
List list = getHibernateTemplate().executeFind(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery(sql);
int comp=(pageId-1)*pageSize;
query.setFirstResult(comp);// 第一行
query.setMaxResults(pageSize);// 最大行
List list = query.list();
return list;
}
});
return list;
} /**
* 查询所有的记录数
*
* @author qbzuo
* @param totalHql
* @return int
*/
public int findTotalRow(String totalHql) {
int totalRow = 0;
List list = getHibernateTemplate().find(totalHql);
if (list.size() > 0&&list.get(0)!=null) {
// System.out.println("list.get(0).toString()="+list.get(0).toString());
totalRow = Integer.parseInt(list.get(0).toString());
}
return totalRow;
} public Double findTotal(String totalHql){
double total=0;
List list = getHibernateTemplate().find(totalHql);
if(list.size()>0 && list.get(0)!=null){
total = Double.parseDouble(list.get(0).toString());
} return total;
} /**
* 执行HQL
*
* @author qbzuo
* @param totalHql
* @return int
*/
public List findHql(String hql) { return getHibernateTemplate().find(hql);
} /**
* 执行SQL
*
* @author qbzuo
* @param totalHql
* @return int
*/
public List findSql(final String sql) { List list = getHibernateTemplate().executeFind(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery(sql);
List list = query.list();
return list;
}
});
return list;
}
//
public List findSqlLimit(final String sql,final int limit){ List list = getHibernateTemplate().executeFind(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery(sql);
query.setFirstResult(0);// 第一行
query.setMaxResults(limit);// 最大行
List list = query.list(); return list;
}
});
return list;
} /**
* 查找一个表的前几条记录,如前3条
* @param hql
* @param limit
* @return
*/
public List findHqlLimit(final String hql,final int limit) { List list = getHibernateTemplate().executeFind(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql); query.setFirstResult(0);// 第一行
query.setMaxResults(limit);// 最大行
return query.list(); }
});
return list;
} /**内部
* 执行多条更新
* @param hql
* by qbzuo
*/
public int updateSqlList(final String sql) { Session session=getHibernateTemplate().getSessionFactory().openSession();
java.sql.Connection con=session.connection();
Statement statement;
try {
Transaction transaction= session.beginTransaction();
transaction.begin();
statement = con.createStatement();
int row=statement.executeUpdate(sql);
transaction.commit();
con.close();
return row;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return -1;
} } /**内部 qbzuo 2013-1-25
* 执行多条更新
* @param hql
* by qbzuo
*/
public int updateSql(final String sql) { Object result = getHibernateTemplate().execute(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery(sql); int result = query.executeUpdate();
return new Integer(result); }
});
return result!=null?(Integer)result:0; } /**内部 qbzuo 2013-1-25
* 执行多条更新
* @param hql
* by qbzuo
*/
public int updateHql(final String hql) { Object result = getHibernateTemplate().execute(new HibernateCallback()
// 用来回调的匿名内部类
{
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql); int result = query.executeUpdate();
return new Integer(result); }
});
return result!=null?(Integer)result:0; } //抽象方法得到dao
//public abstract HibernateDaoSupport getDao(); }

宝贝网址:

通用Hibernate DAO类(包括分页)的更多相关文章

  1. hibernate基础dao类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:数据库的保存.更新.删除:sql.hql查询:分页查询:调用存储过程 创建hibernate基础dao类: BaseD ...

  2. hibernate和struts2实现分页功能

    1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO { public List<Person> queryB ...

  3. spring+hibernate实体类注解详解(非原创) + cascade属性取值

    @Entity //继承策略.另一个类继承本类,那么本类里的属性应用到另一个类中 @Inheritance(strategy = InheritanceType.JOINED ) @Table(nam ...

  4. .net通用CMS快速开发框架——问题1:Dapper通用的多表联合分页查询怎么破?

    最近在弄一个东东,类似那种CMS的后台管理系统,方便作为其它项目的初始化框架用的. 现在遇到个问题,如标题所示:Dapper通用的多表联合分页查询怎么破? 难道只能通过拼接sql或者使用存储过程吗?我 ...

  5. (转) Eclipse通过HibernateTools实现逆向生成Hibernate实体类

    背景:工作中使用Hibernate进行持久化的开发工作,所以有必要详细了解这方面的知识. ps:这里有个问题就是刷新表的时候速度太慢了.还不如自己手动去创建.如果表太多倒是可以采取批量生成的策略. 在 ...

  6. liferay总结的通用的工具类

    在写增删改查的时候,自己动手写了几个通用的工具类,这几个通用的工具类也是基于API写的 第一个是liferay中的分页.跟我们做普通的web开发,分页是一样的首先需要建立一个分页的实体的类 packa ...

  7. 解决hibernate对Sql Server分页慢的问题

    一.hibernate分页 hibernate对MsSql的伪分页 分页是web项目中比不可少的一个功能,数据量大的时候不能全部展示必然要用到分页技术.相信大家对hibernate中的分页都不陌生: ...

  8. 利用JAVA反射机制设计通用的DAO

    利用JAVA反射机制设计一个通用的DAO 反射机制 反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字,    那么就可以通过反射机制来获得类的所有信息. 反射机制创建类对象 ...

  9. (转) Hibernate持久化类与主键生成策略

    http://blog.csdn.net/yerenyuan_pku/article/details/65462930 Hibernate持久化类 什么是持久化类呢?在Hibernate中持久化类的英 ...

随机推荐

  1. 关于 iOS 10 中 ATS 的问题

    本文于 2016 年 11 月 28 日按照 Apple 最新的文档和 Xcode 8 中的表现进行了部分更新. WWDC 15 提出的 ATS (App Transport Security) 是 ...

  2. dubbo-admin和dubbo-monitor-simple的布署

    dubbo-admin 把dubbo-admin的war包解压到tomcat或者jetty的ROOT目录下,启动就可以访问了(自己配置tomcat的端口) wget http://code.aliba ...

  3. Premier使用笔记

    在高中时喜欢打CS,也喜欢看高手的视频,一直打到这游戏淘汰了,为了纪念,也尝试着做了一个视频,就是利用该入门级软件.无意中翻出了当时使用这软件时的笔记,整理到这里,可能这些内容对于博客园来讲太垃圾,毫 ...

  4. RabbitMQ(四)

    RabbitMQ 配置 一.RabbitMQ 配置修改方式 1.修改环境变量 2.修改配置文件(只介绍这个) 3.修改运行时参数和政策 locate rabbitmq vi /var/log/rabb ...

  5. requestWindowFeature(Window.FEATURE_NO_TITLE)无效解决方法

    今天在<第一行代码>上学习做自定义标题栏,需要将系统自带的标题栏隐藏掉,使用自定义的标题栏,结果发现,requestWindowFeature(Window.FEATURE_NO_TITL ...

  6. IE10中session失效取不到值的问题

    在eworkflow工作流,ebiao报表,eform自定义表单产品升级到IE10的时候,系统登录后,总是会取不到session中的值. for j2ee版本和for dotnet版本都一样取不到值. ...

  7. Servlet基础

    今天在学习Servlet的时候遇到了一个问题:大概是这样java.lang.ClassNotFoundException: HelloServlet at org.apache.catalina.lo ...

  8. Bootstrap框架(基础篇)

    本文引用慕课网http://www.imooc.com/learn/141  作者大漠  讲的很详细,我没有全篇都引用,其中很多是添加了自己的一些理解. Bootstrap框架是基于JQuery 所以 ...

  9. OC Runtime

    OC 是面向运行时的语言.Runtime就是系统在运行的时候的一些机制,其中最主要的是消息发送机制.OC语言与其他语言(如C语言)在函数(方法)的调用有很大的不同.C语言,函数的调用在编译的时候就已经 ...

  10. JS function document.onclick(){}报错Syntax error on token "function", delete this token

    JS function document.onclick(){}报错Syntax error on token "function", delete this token func ...