Hibernate常用方法整理
来源:互联网 发布:淘宝百度云盘资源暗号 编辑:程序博客网 时间:2024/05/17 22:02
HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:
q
q
q
q
q
q
q
q
q
下面是一个完整DAO类的源代码
public class PersonDAOHibernate implements PersonDAO{ //采用log4j来完成调试时的日志功能private static Log log = LogFactory.getLog(NewsDAOHibernate.class); //以私有的成员变量来保存SessionFactory。private SessionFactory sessionFactory;//以私有变量的方式保存HibernateTemplateprivate HibernateTemplate hibernateTemplate = null; //设值注入SessionFactory必需的setter方法 public void setSessionFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory; } //初始化本DAO所需的HibernateTemplatepublic HIbernateTemplate getHibernateTemplate(){ //首先,检查原来的hibernateTemplate实例是否还存在 if ( hibernateTemplate == null) { //如果不存在,新建一个HibernateTemplate实例 hibernateTemplate = new HibernateTemplate(sessionFactory); } return hibernateTemplate;} //返回全部的人的实例 public List getPersons() { //通过HibernateTemplate的find方法返回Person的全部实例 return getHibernateTemplate().find("from Person"); } public void savePerson(Person person) { getHibernateTemplate().saveOrUpdate(person); } /** * @ param personid 需要删除Person实例的主键 * / public void removePerson(int personid) { //先加载特定实例 Object p = getHibernateTemplate().load(Person.class, new Integer(personid)); //删除特定实例 getHibernateTemplate().delete(p); }}*****************************************************************************************************************************************************************************
hibernateTemplate实现分页
Spring 整合 Hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页
/*
/*** 使用hql 语句进行操作 * @param hql* @param offset* @param length* @return List*/public List getListForPage(final String hql, final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List list = query.list(); return list; } }); return list;}/*** 使用criterion进行操作* @param arg* @param criterions* @param offset* @param length* @return List*/protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria criteria = session.createCriteria(arg); //循环遍历添加约束条件 for (int i = 0; i < criterions.length; i++) { criteria.add(criterions[i]); } criteria.setFirstResult(offset); criteria.setMaxResults(length); return criteria.list(); } }); return list;
- Hibernate常用方法整理
- Java 常用方法整理
- JavaScript常用方法整理
- Quartz常用方法整理
- Cocos2D常用方法整理
- 常用javascript方法整理
- magento常用方法整理
- ListView常用方法整理
- jq常用方法整理
- js常用方法整理
- js常用方法整理
- javassist 常用方法整理
- JavaScript常用方法整理
- hibernate 常用方法
- Hibernate 常用方法
- hibernate 常用方法
- hibernate 常用方法
- hibernate 常用方法介绍
- Android 系统自带样式Android:theme
- iphone-common-codes-ccteam源代码 CCDylib.h
- LINUX 环境变量总结
- Eclipse打开出现Workspace in use or cannot be created, choose a different one
- VC下生成随机数字符串
- Hibernate常用方法整理
- J2EE总结--浅识JNDI
- iphone-common-codes-ccteam源代码 CCDylib.m
- 在windows下编译object-c语言
- Moab 5.2.0+Torque 2.2.1/pbs集群作业可视化管理系统部署试验
- 数据结构课设题目——求第K短的最短路径
- Flex代码格式化插件
- extjs 3.4 在IE8下,tabPanel会同时出现纵向、横向滚动条的情况。影响用户体验。
- Linux命令:history的用法