HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring 2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:
q void delete(Object entity):删除指定持久化实例
q deleteAll(Collection entities):删除集合内全部持久化类实例
q find(String queryString):根据HQL查询字符串来返回实例集合
q findByNamedQuery(String queryName):根据命名查询返回实例集合
q get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例
q save(Object entity):保存新的实例
q saveOrUpdate(Object entity):根据实例状态,选择保存或者更新
q update(Object entity):更新实例的状态,要求entity是持久状态
q setMaxResults(int maxResults):设置分页的大小
下面是一个完整DAO类的源代码:
public class PersonDAOHibernate implements PersonDAO
{
//采用log4j来完成调试时的日志功能
private static Log log = LogFactory.getLog(NewsDAOHibernate.class);
//以私有的成员变量来保存SessionFactory。
private SessionFactory sessionFactory;
//以私有变量的方式保存HibernateTemplate
private HibernateTemplate hibernateTemplate = null;
//设值注入SessionFactory必需的setter方法
public void setSessionFactory(SessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}
//初始化本DAO所需的HibernateTemplate
public HIbernateTemplate getHibernateTemplate()
{
//首先,检查原来的hibernateTemplate实例是否还存在
if ( hibernateTemplate == null)
{
//如果不存在,新建一个HibernateTemplate实例
hibernateTemplate = new HibernateTemplate(sessionFactory);
}
return hibernateTemplate;
}
//返回全部的人的实例
public List getPersons()
{
//通过HibernateTemplate的find方法返回Person的全部实例
return getHibernateTemplate().find("from Person");
}
/**
* 根据主键返回特定实例
* @ return 特定主键对应的Person实例
* @ param 主键值
public News getNews(int personid)
{
return (Person)getHibernateTemplate().get(Person.class, new Integer(personid));
}
/**
* @ person 需要保存的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);
}
}
分享到:
相关推荐
由于Generic DAO不能对复杂的HQL或视图,存贮过程进行操作,目前还有待完善,可以不用hibernate-generic-dao - Generic DAO, 用Spring3.2.0和Hibernate4替换,就是一个非常好的Struts2+Spring3+Hibernate4基于...
10 在Struts基础上继续完善BBS200 5 11 性能优化(重点) 5 12 补充话题 5 风格 5 1 先脉络,后细节 5 2 先操作,后原理 5 3 重Annotation,轻xml配置文件 5 资源 5 1 http://www. hibernate.org 5 2 hibernate zh_CN...
进入命令行,切换到你的发行包的目录,输入ant eg(使用了Ant),或者在Windows操作系统中使用build eg。 <br>把这份参考文档作为你学习的主要信息来源。 <br>在Hibernate 的网站上可以找到经常提问的问题与...
进入命令行,切换到你的发行包的目录,输入ant eg(使用了Ant),或者在Windows操作系统中使用build eg。 <br>把这份参考文档作为你学习的主要信息来源。 <br>在Hibernate 的网站上可以找到经常提问的问题与...
/** * YDL_Hibernate概要 * (一)支持功能: 1.... * 这里有这个框架的使用范例和源码,希望朋友们多多交流完善这个框架,共同推动中国开源事业的发展,YDL_Hibernate期待与您共创美好未来!!! */
功能完善、结构清晰。个人博客浏览。能够实现后台用户管理。能够实现推荐博客操作。能够实现后台文章管理。能够实现后台相册管理 操作注意事项 (1)进用后台地址为:...
【简要说明】:系统自身具有强大、完善的网站后台管理功能,可以为每个科局(科室\部门)设定不同的管理权限,动态增删改栏目,有如WORD文档处理般的图文混排功能,操作方便。系统前台的栏目、菜单、功能入口等全部...
使用Spring与Hibernate(通过配置web.xml文件,可以替换数据库MySQL或SQLite)(context.xml配置连接mysql的参数) 实现对课程、学生、教师的基本CRUD操作, 使用JUnit 进行单元测试 教务处添加课程和学生选课都...
【简要说明】:系统自身具有强大、完善的网站后台管理功能,可以为每个科局(科室\部门)设定不同的管理权限,动态增删改栏目,有如WORD文档处理般的图文混排功能,操作方便。系统前台的栏目、菜单、功能入口等全部...
* 数据持久层使用SpringBoot自带的Hibernate来维护PO(Persistent Object持久化对象),这里使用Hibernate的原因在于其三种对象状态(持久态、游离态、分割态)便于持久化对象的增删改查等一系列操作,取代了jdbc的...
**项目名称:** 图书管理系统(基于Struts + Hibernate + Spring + Ext JS) **项目简介:** 本项目是一个基于Java Web技术的图书管理系统,采用了Struts、Hibernate、Spring和Ext JS等主流框架进行开发。系统主要...
6. 后台管理:系统提供了完善的后台管理功能,供管理员对系统进行维护和管理。管理员可以对菜品、订单、用户等进行增删改查操作,以满足日常运营需求。 通过以上功能介绍,我们可以看到网上订餐系统(struts+spring+...
开发一套完善的物资管理系统不但可以使物资的管理者能够对物资的整个流程状态、库存状况了如指掌,并为决策管理提供科学依据,从而提高了管理水平和工作效率,而且可以使工作人员甩掉手工记账方式,从而最大限度地...
7. 权限控制:系统具有完善的权限管理机制,确保只有合法用户才能执行相应操作。 8. 数据统计:提供数据统计功能,帮助博主了解文章的访问量和用户的活跃度等信息。 此外,该项目采用了模块化设计,各功能模块之间...
* 数据持久层使用SpringBoot自带的Hibernate来维护PO(Persistent Object持久化对象),这里使用Hibernate的原因在于其三种对象状态(持久态、游离态、分割态)便于持久化对象的增删改查等一系列操作,取代了jdbc的...
本项目是一个基于Java Web技术的网上书店系统,采用Struts框架进行页面控制,Hibernate框架进行数据库操作,CSS进行页面美化,MySQL作为数据库存储数据。该系统具有完整的用户注册、登录、浏览、搜索、购物车、订单...
**项目名称:** 图书管理系统...总之,本项目是一个功能完善、易于扩展的图书管理系统,可为广大图书馆提供高效、专业的管理服务。通过二次开发和定制,可以满足不同图书馆的个性化需求,提升管理水平和服务质量。
2. 使用Hibernate作为ORM框架,实现了对数据库的抽象和封装,简化了数据库操作。 3. 采用MySQL作为数据库存储,具有较高的性能和可扩展性。 4. 使用CSS进行前端页面设计,实现了良好的用户界面和交互体验。 **二次...
该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 一. 技术组成 技术栈:Java,使用 jdk1.8 即可 开发环境:IDEA /Ecplise 数据库:MySql (如果有的话) 二. 部署说明 1. Java...