1. package org.tarena.dao;
  2.  
  3. import java.sql.SQLException;
  4. import java.util.List;
  5.  
  6. import javax.annotation.Resource;
  7.  
  8. import org.hibernate.HibernateException;
  9. import org.hibernate.Query;
  10. import org.hibernate.Session;
  11. import org.hibernate.SessionFactory;
  12. import org.springframework.context.annotation.Scope;
  13. import org.springframework.orm.hibernate3.HibernateCallback;
  14. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  15. import org.springframework.stereotype.Repository;
  16. import org.tarena.entity.Cost;
  17.  
  18. @Repository
  19. @Scope("prototype")
  20. public class CostDaoImpl extends HibernateDaoSupport implements CostDao {
  21.  
  22. //用注解才要这么写,否则不用
  23. @Resource//注入sf
  24. public void setMySessionFactory(SessionFactory sf){
  25. super.setSessionFactory(sf);
  26. }
  27.  
  28. /**
  29. * 单个查找
  30. */
  31. public Cost findById(Integer costId) {
  32. //还有load方法,延迟加载
  33. Cost cost = getHibernateTemplate().get(Cost.class, costId);
  34. return cost;
  35. }
  36.  
  37. /**
  38. * 新增
  39. */
  40. public void save(Cost cost) {
  41. getHibernateTemplate().save(cost);
  42. }
  43.  
  44. /**
  45. * 删除
  46. */
  47. public void delete(Cost cost) {
  48. getHibernateTemplate().delete(cost);
  49. }
  50.  
  51. /**
  52. * 更新
  53. */
  54. public void update(Cost cost) {
  55. getHibernateTemplate().update(cost);
  56. }
  57.  
  58. /**
  59. * 所有查找
  60. */
  61. public List<Cost> findAll() {
  62. String hql = "from Cost";
  63. List<Cost> list = getHibernateTemplate().find(hql);
  64. return list;
  65. }
  66.  
  67. /**
  68. * 统计个数
  69. */
  70. public int count() {
  71. String hql = "select count(*) from Cost";
  72. List list = getHibernateTemplate().find(hql);
  73. int count = Integer.parseInt(list.get(0).toString());
  74. return count;
  75. }
  76.  
  77. /**
  78. * 分页查询
  79. */
  80. public List<Cost> findPage(final int page, final int pageSize) {
  81. List<Cost> list = (List<Cost>) getHibernateTemplate().execute(new HibernateCallback<Object>() {
  82. public Object doInHibernate(Session session)
  83. throws HibernateException, SQLException {
  84. //在方法体中使用session对象
  85. String hql = "from Cost";
  86. Query query = session.createQuery(hql);
  87.  
  88. int begin = (page - 1)*pageSize;
  89. query.setFirstResult(begin);
  90. query.setMaxResults(pageSize);
  91. return query.list();
  92. }
  93. });
  94. return list;
  95. }
  96.  
  97. }

利用getHibernateTemplate实现简单的操作的更多相关文章

  1. 利用LinkedHashMap实现简单的缓存

    update1:第二个实现,读操作不必要采用独占锁,缓存显然是读多于写,读的时候一开始用独占锁是考虑到要递增计数和更新时间戳要加锁,不过这两个变量都是采用原子变量,因此也不必采用独占锁,修改为读写锁. ...

  2. Android手机上,利用bat脚本模拟用户操作

    ………… 那么你就可以来看看这篇帖子了. 言归正传 利用bat脚本模拟用户操作,需要用到两点: ①就是adb命令了,adb命令可以用来模拟用户在手机上的操作 ②bat语言,就是批处理语言,主要用来进行 ...

  3. SqlServer简单的操作XML以及SQl的 try catch等统一格式

    1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...

  4. 【QT】利用pyqt5实现简单界面

    Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018            ...

  5. vue springboot利用easypoi实现简单导出

    vue springboot利用easypoi实现简单导出 前言 一.easypoi是什么? 二.使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto, ...

  6. salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...

  7. 学习笔记:利用GDI+生成简单的验证码图片

    学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...

  8. 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作

    下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...

  9. SequoiaDB 系列之二 :SequoiaDB的简单CRUD操作

    上一篇通过一系列的操作,终于把SequoiaDB的集群部署到单台机器上了. 建议去安装体验一下吧. 在整个环境的部署的体验来看,并没有MongoDB的部署简单,但是比MongoDB的部署要清晰.Mon ...

随机推荐

  1. PAT 1063 Set Similarity (25)

    题意:给你n个集合,k次询问,每次询问求两个集合的(交集)/(并集). 思路:k有2000,集合大小有10000.先将每个集合排序,对每个询问分别设两个指针指向两个集合的头.设a[i]为指针1的值,b ...

  2. 单机最大tcp连接数

    from:http://www.cnblogs.com/mydomain/archive/2013/05/27/3100835.html 单机最大tcp连接数 网络编程 在tcp应用中,server事 ...

  3. 安卓版微信内置浏览器,<a href="tel:电话号码"></a> 这个链接失效,不能跳到拨号界面?

    https://segmentfault.com/q/1010000000318831 在URL最后面加“ #mp.weixin.qq.com ”,应该加其他qq.com的二级域名都行,估计是微信的安 ...

  4. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.F ...

  5. final-----finalize----finally---区别

    一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关 ...

  6. kprobe原理解析(二)

    上一篇文章和大家简要说明了下kprobe到底应该怎样用,那么现在我们就揭开kprobe神秘的面纱,刨根问底,一睹kprobe的庐山真面目. kprobe的工作过程大致如下: 1)注册kprobe.注册 ...

  7. C语言 百炼成钢9

    //题目25:求1+2!+3!+...+20!的和 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib ...

  8. 0.1 hint crack

    http://files.cnblogs.com/files/crac/27.rar

  9. 说说C#中IList与List区别

    首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口. 它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,ILis ...

  10. iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )

    在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用: