package org.crazyit.common.dao.impl;
import org.hibernate.*;
import java.util.List;
import java.io.Serializable;
import org.crazyit.common.dao.*;
/**
* Description:
* <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
* <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class BaseDaoHibernate4<T> implements BaseDao<T>
{
// DAO组件进行持久化操作底层依赖的SessionFactory组件
private SessionFactory sessionFactory;
// 依赖注入SessionFactory所需的setter方法
public void setSessionFactory(SessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}
public SessionFactory getSessionFactory()
{
return this.sessionFactory;
}
// 根据ID加载实体
@SuppressWarnings("unchecked")
public T get(Class<T> entityClazz , Serializable id)
{
return (T)getSessionFactory().getCurrentSession()
.get(entityClazz , id);
}
// 保存实体
public Serializable save(T entity)
{
return getSessionFactory().getCurrentSession()
.save(entity);
}
// 更新实体
public void update(T entity)
{
getSessionFactory().getCurrentSession().saveOrUpdate(entity);
}
// 删除实体
public void delete(T entity)
{
getSessionFactory().getCurrentSession().delete(entity);
}
// 根据ID删除实体
public void delete(Class<T> entityClazz , Serializable id)
{
delete(get(entityClazz , id));
}
// 获取所有实体
@SuppressWarnings("unchecked")
public List<T> findAll(Class<T> entityClazz)
{
return find("select en from "
+ entityClazz.getSimpleName() + " en");
}
// 获取实体总数
public long findCount(Class<T> entityClazz)
{
List l = find("select count(*) from "
+ entityClazz.getSimpleName());
// 查询得到的实体总数
if (l != null && l.size() == 1 )
{
return (Long)l.get(0);
}
return 0;
}
// 根据HQL语句查询实体
@SuppressWarnings("unchecked")
protected List<T> find(String hql)
{
return (List<T>)getSessionFactory().getCurrentSession()
.createQuery(hql)
.list();
}
// 根据带占位符参数HQL语句查询实体
@SuppressWarnings("unchecked")
protected List<T> find(String hql , Object... params)
{
// 创建查询
Query query = getSessionFactory().getCurrentSession()
.createQuery(hql);
// 为包含占位符的HQL语句设置参数
for(int i = 0 , len = params.length ; i < len ; i++)
{
query.setParameter(i + "" , params[i]);
}
return (List<T>)query.list();
}
/**
* 使用hql 语句进行分页查询操作
* @param hql 需要查询的hql语句
* @param pageNo 查询第pageNo页的记录
* @param pageSize 每页需要显示的记录数
* @return 当前页的所有记录
*/
@SuppressWarnings("unchecked")
protected List<T> findByPage(String hql,
int pageNo, int pageSize)
{
// 创建查询
return getSessionFactory().getCurrentSession()
.createQuery(hql)
// 执行分页
.setFirstResult((pageNo - 1) * pageSize)
.setMaxResults(pageSize)
.list();
}
/**
* 使用hql 语句进行分页查询操作
* @param hql 需要查询的hql语句
* @param params 如果hql带占位符参数,params用于传入占位符参数
* @param pageNo 查询第pageNo页的记录
* @param pageSize 每页需要显示的记录数
* @return 当前页的所有记录
*/
@SuppressWarnings("unchecked")
protected List<T> findByPage(String hql , int pageNo, int pageSize
, Object... params)
{
// 创建查询
Query query = getSessionFactory().getCurrentSession()
.createQuery(hql);
// 为包含占位符的HQL语句设置参数
for(int i = 0 , len = params.length ; i < len ; i++)
{
query.setParameter(i + "" , params[i]);
}
// 执行分页,并返回查询结果
return query.setFirstResult((pageNo - 1) * pageSize)
.setMaxResults(pageSize)
.list();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
疯狂ajax 讲义 第三版 源码 01-05 (3169个子文件)
ProUploadServlet.class 5KB
BaseDaoHibernate4.class 5KB
AlbumServiceImpl.class 4KB
ChatService.class 3KB
ChatService.class 3KB
ChatService.class 3KB
TurnPageServlet.class 3KB
GetPhotoServlet.class 3KB
ProRegistServlet.class 2KB
ProLoginServlet.class 2KB
LoginServlet.class 2KB
LoginServlet.class 2KB
LoginServlet.class 2KB
RegServlet.class 2KB
RegServlet.class 2KB
RegServlet.class 2KB
ValidateNameServlet.class 2KB
ChatServlet.class 2KB
ChatServlet.class 2KB
BookService.class 2KB
ProServlet.class 2KB
ProServlet.class 2KB
ProServlet.class 2KB
ProServlet.class 2KB
PageLoadServlet.class 2KB
ChatServlet.class 2KB
ChooseBookServlet.class 2KB
ShowImgServlet.class 2KB
User.class 2KB
Photo.class 1KB
Book.class 1KB
UserDaoHibernate.class 1KB
BaseServlet.class 1KB
PhotoDaoHibernate.class 991B
PhotoHolder.class 896B
BaseDao.class 800B
AlbumService.class 543B
PhotoDao.class 486B
AlbumException.class 474B
UserDao.class 336B
ext-neptune.css 546KB
ext-neptune-debug.css 546KB
ext-neptune.css 546KB
ext-neptune-debug.css 546KB
ext-all-scoped-debug.css 431KB
ext-all-scoped-debug.css 431KB
ext-sandbox-debug.css 396KB
ext-sandbox-debug.css 396KB
ext-ie-scoped-debug.css 395KB
ext-ie-scoped-debug.css 395KB
ext-all-debug.css 391KB
ext-all-debug.css 391KB
ext-all-gray-debug.css 381KB
ext-all-gray-debug.css 381KB
ext-all-access-debug.css 370KB
ext-all-access-debug.css 370KB
ext-ie-debug.css 357KB
ext-ie-debug.css 357KB
ext-standard-scoped-debug.css 316KB
ext-standard-scoped-debug.css 316KB
ext-standard-debug.css 287KB
ext-standard-debug.css 287KB
ext-all-scoped.css 263KB
ext-all-scoped.css 263KB
ext-sandbox.css 244KB
ext-sandbox.css 244KB
ext-all.css 240KB
ext-all.css 240KB
ext-ie-scoped.css 233KB
ext-ie-scoped.css 233KB
ext-all-gray.css 230KB
ext-all-gray.css 230KB
ext-all-access.css 224KB
ext-all-access.css 224KB
ext-ie.css 210KB
ext-ie.css 210KB
ext-standard-scoped.css 179KB
ext-standard-scoped.css 179KB
ext-standard.css 163KB
ext-standard.css 163KB
jquery-ui-1.8.23.custom.css 33KB
album.css 336B
Thumbs.db 4KB
scv_blue.gif 6KB
tool-sprites.gif 6KB
tool-sprites.gif 6KB
tool-sprites.gif 5KB
tool-sprites.gif 5KB
btn.gif 4KB
btn.gif 4KB
btn.gif 4KB
btn.gif 4KB
error-tip-corners.gif 4KB
error-tip-corners.gif 4KB
error-tip-corners.gif 4KB
error-tip-corners.gif 4KB
error-tip-corners.gif 4KB
error-tip-corners.gif 4KB
3.gif 3KB
2.gif 3KB
共 3169 条
- 1
- 2
- 3
- 4
- 5
- 6
- 32
资源评论
- zhanghai07932014-12-20资源是需要的,谢谢
- GGLL172015-04-26ajax还不错,挺好的
- qq_232753572015-07-25找了很久,终于找到了,谢谢楼主,很好用呀
- delwood2014-07-01很好的ajax方面的书,是第三版的源代码,谢谢分享!
abcdwhy
- 粉丝: 7
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于MQTT的智能宠物投喂系统
- 312749069629470selfieU重绘.apk
- http%3A%2F%2Fimg.wsdl.vivo.com.cn%2Fappstore%2Fdeveloper%2Ficon%2F201412%2F201412231038336
- 主要记录B站up主莫烦matplotlib教程中的代码.zip
- Java SE Development Kit 8u411 Windows x64 Installer
- 用于科学绘图的 Matplotlib 样式.zip
- Java SE Development Kit 11.0.23 Windows x64 Installer
- 毕业设计-后端项目-网站民宿展示网站SSM
- 基于python绘图,程序详细展示了绘图过程中详尽的命令语句,使得图片达到可发表程度 .zip
- Java SE Development Kit 11.0.23 macOS x64 DMG Installer
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功