HibernateTemplate常用方法 .[通俗易懂]

HibernateTemplate常用方法 .[通俗易懂]HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等操作,Spring2.0更增加对命名SQL查询的支持,也增加对分页的支持。大部分情况下,使用Hibernate的常规用法,就可完成大多数DAO对象的CRUD操作。下面是HibernateTemplate的常用方法简介:qvoiddelete(Objecten…

大家好,又见面了,我是你们的朋友全栈君。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类的源代码:

[java] view plaincopyprint?

01.public class PersonDAOHibernate implements PersonDAO

02.{

03. //采用log4j来完成调试时的日志功能

04.private static Log log = LogFactory.getLog(NewsDAOHibernate.class);

05. //以私有的成员变量来保存SessionFactory。

06.private SessionFactory sessionFactory;

07.//以私有变量的方式保存HibernateTemplate

08.private HibernateTemplate hibernateTemplate = null;

09. //设值注入SessionFactory必需的setter方法

10. public void setSessionFactory(SessionFactory sessionFactory)

11.{

12. this.sessionFactory = sessionFactory;

13. }

14. //初始化本DAO所需的HibernateTemplate

15.public HIbernateTemplate getHibernateTemplate()

16.{

17. //首先,检查原来的hibernateTemplate实例是否还存在

18. if ( hibernateTemplate == null)

19. {

20. //如果不存在,新建一个HibernateTemplate实例

21. hibernateTemplate = new HibernateTemplate(sessionFactory);

22. }

23. return hibernateTemplate;

24.}

25. //返回全部的人的实例

26. public List getPersons()

27. {

28. //通过HibernateTemplate的find方法返回Person的全部实例

29. return getHibernateTemplate().find(“from Person”);

30. }

31. /**

32. * 根据主键返回特定实例

33. * @ return 特定主键对应的Person实例

34. * @ param 主键值

35. public News getNews(int personid)

36. {

37. return (Person)getHibernateTemplate().get(Person.class, new Integer(personid));

38. }

39. /**

40. * @ person 需要保存的Person实例

41. */

42. public void savePerson(Person person)

43. {

44. getHibernateTemplate().saveOrUpdate(person);

45. }

46. /**

47. * @ param personid 需要删除Person实例的主键

48. * /

49. public void removePerson(int personid)

50. {

51. //先加载特定实例

52. Object p = getHibernateTemplate().load(Person.class, new Integer(personid));

53. //删除特定实例

54. getHibernateTemplate().delete(p);

55. }

56.}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149247.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月16日 下午7:00
下一篇 2022年6月16日 下午7:16


相关推荐

  • BroadcastReceiver详解以及应用[通俗易懂]

    使用Android手机的时候,我们的手机管家中经常会出现开机自启动某某app,那么对于这个某某APP来说,他是怎么知道系统什么时候开机的呢?还有,系统短信怎么知道收到了短信?以及屏幕点亮与关闭、应用卸载与安装等等。这就讲到了Android四大组件之一:BroadcastReceiver,翻译是广播接收者。意思就是接收广播用的。他可以接收到系统开机完成的广播,以及系统电量不足的广播,以及系统收到短信的

    2022年4月18日
    57
  • 解决VirtualBox不能为虚拟电脑打开一个新任务

    解决VirtualBox不能为虚拟电脑打开一个新任务报错了 找一找解决办法解决方法 1 解决 VirtualBox 虚拟机软件 E FALL 0x Machinewrap 错误 简书 jianshu com https www jianshu com p 239cbc3e8a80 在 C 盘搜索的时候只找到一个 没法参考这个解决办法解决方法 2 28 条消息 virtualBox 打开一个虚拟机报错解决 真解 颜颜颜颜颜越的博客 CSDN 博客 virtualbox 报错 https blog csdn ne

    2026年3月17日
    2
  • pyd文件介绍

    pyd文件介绍pyd 一般是 python 外的其他语言如 C C 编写的 python 扩展模块 即 python 的一个动态链接库 与 dll 文件相当 在 linux 系统中一般为 so 文件 也有的时候 为了对 python 文件进行加密 会把 python 模块编译成 pyd 文件 供其他人使用 拿到一个 pyd 文件 在没有文档说明的情况下 可以试试查看模块内的一些函数和类的用法 首先 importXXX pyd 的文件名 然后直接 print dir XXX print help XXX 其中 dir 列出了属性和方法 help

    2025年8月12日
    4
  • 程序设计之单例模式 VS 静态方法

    程序设计之单例模式 VS 静态方法我们在设计程序经常会有这种需求 某个类里的方法能够全局访问 在这种情况下有两种实现方案 1 gt 单例模式 Singleton 2 gt 静态方法 但是 对于这两种实现方式 那种更好呢 在国内论坛上看了一下其他的一些看法 http hi baidu com jiangzhong87 item c8b66e3d6afd

    2026年3月17日
    2
  • YOLOv5 实现目标检测(训练自己的数据集实现猫猫识别)

    YOLOv5 实现目标检测(训练自己的数据集实现猫猫识别)一、概要2020年6月10日,Ultralytics在github上正式发布了YOLOv5。YOLO系列可以说是单机目标检测框架中的潮流前线了,由于YOLOv5是在PyTorch中实现的,它受益于成熟的PyTorch生态系统,支持更简单,部署更容易,相对于YOLOv4,YOLOv5具有以下优点:速度更快。在YOLOv5Colabnotebook上,运行TeslaP100,我们看到每张图像的推理时间仅需0.007秒,这意味着每秒140帧(FPS),速度是YOLOv4的2倍还多。精度更高。在Rob

    2022年6月14日
    221
  • 样品GA的良好理解

    样品GA的良好理解

    2021年12月17日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号