利用getHibernateTemplate实现简单的操作
- package org.tarena.dao;
- import java.sql.SQLException;
- import java.util.List;
- import javax.annotation.Resource;
- import org.hibernate.HibernateException;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import org.hibernate.SessionFactory;
- import org.springframework.context.annotation.Scope;
- import org.springframework.orm.hibernate3.HibernateCallback;
- import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
- import org.springframework.stereotype.Repository;
- import org.tarena.entity.Cost;
- @Repository
- @Scope("prototype")
- public class CostDaoImpl extends HibernateDaoSupport implements CostDao {
- //用注解才要这么写,否则不用
- @Resource//注入sf
- public void setMySessionFactory(SessionFactory sf){
- super.setSessionFactory(sf);
- }
- /**
- * 单个查找
- */
- public Cost findById(Integer costId) {
- //还有load方法,延迟加载
- Cost cost = getHibernateTemplate().get(Cost.class, costId);
- return cost;
- }
- /**
- * 新增
- */
- public void save(Cost cost) {
- getHibernateTemplate().save(cost);
- }
- /**
- * 删除
- */
- public void delete(Cost cost) {
- getHibernateTemplate().delete(cost);
- }
- /**
- * 更新
- */
- public void update(Cost cost) {
- getHibernateTemplate().update(cost);
- }
- /**
- * 所有查找
- */
- public List<Cost> findAll() {
- String hql = "from Cost";
- List<Cost> list = getHibernateTemplate().find(hql);
- return list;
- }
- /**
- * 统计个数
- */
- public int count() {
- String hql = "select count(*) from Cost";
- List list = getHibernateTemplate().find(hql);
- int count = Integer.parseInt(list.get(0).toString());
- return count;
- }
- /**
- * 分页查询
- */
- public List<Cost> findPage(final int page, final int pageSize) {
- List<Cost> list = (List<Cost>) getHibernateTemplate().execute(new HibernateCallback<Object>() {
- public Object doInHibernate(Session session)
- throws HibernateException, SQLException {
- //在方法体中使用session对象
- String hql = "from Cost";
- Query query = session.createQuery(hql);
- int begin = (page - 1)*pageSize;
- query.setFirstResult(begin);
- query.setMaxResults(pageSize);
- return query.list();
- }
- });
- return list;
- }
- }
利用getHibernateTemplate实现简单的操作的更多相关文章
- 利用LinkedHashMap实现简单的缓存
update1:第二个实现,读操作不必要采用独占锁,缓存显然是读多于写,读的时候一开始用独占锁是考虑到要递增计数和更新时间戳要加锁,不过这两个变量都是采用原子变量,因此也不必采用独占锁,修改为读写锁. ...
- Android手机上,利用bat脚本模拟用户操作
………… 那么你就可以来看看这篇帖子了. 言归正传 利用bat脚本模拟用户操作,需要用到两点: ①就是adb命令了,adb命令可以用来模拟用户在手机上的操作 ②bat语言,就是批处理语言,主要用来进行 ...
- SqlServer简单的操作XML以及SQl的 try catch等统一格式
1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...
- 【QT】利用pyqt5实现简单界面
Topic: 利用pyqt5编写简单界面Env:win10 + Pycharm2018 + Python 3.6.8Date: 2019/4/29 by hw_Chen2018 ...
- vue springboot利用easypoi实现简单导出
vue springboot利用easypoi实现简单导出 前言 一.easypoi是什么? 二.使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto, ...
- salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesforce中的数据库使用的是Force.com 平台的数据库,数据表一行数据可以理解成一个sObject变量 ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
- 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作
下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...
- SequoiaDB 系列之二 :SequoiaDB的简单CRUD操作
上一篇通过一系列的操作,终于把SequoiaDB的集群部署到单台机器上了. 建议去安装体验一下吧. 在整个环境的部署的体验来看,并没有MongoDB的部署简单,但是比MongoDB的部署要清晰.Mon ...
随机推荐
- PAT 1063 Set Similarity (25)
题意:给你n个集合,k次询问,每次询问求两个集合的(交集)/(并集). 思路:k有2000,集合大小有10000.先将每个集合排序,对每个询问分别设两个指针指向两个集合的头.设a[i]为指针1的值,b ...
- 单机最大tcp连接数
from:http://www.cnblogs.com/mydomain/archive/2013/05/27/3100835.html 单机最大tcp连接数 网络编程 在tcp应用中,server事 ...
- 安卓版微信内置浏览器,<a href="tel:电话号码"></a> 这个链接失效,不能跳到拨号界面?
https://segmentfault.com/q/1010000000318831 在URL最后面加“ #mp.weixin.qq.com ”,应该加其他qq.com的二级域名都行,估计是微信的安 ...
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.F ...
- final-----finalize----finally---区别
一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关 ...
- kprobe原理解析(二)
上一篇文章和大家简要说明了下kprobe到底应该怎样用,那么现在我们就揭开kprobe神秘的面纱,刨根问底,一睹kprobe的庐山真面目. kprobe的工作过程大致如下: 1)注册kprobe.注册 ...
- C语言 百炼成钢9
//题目25:求1+2!+3!+...+20!的和 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib ...
- 0.1 hint crack
http://files.cnblogs.com/files/crac/27.rar
- 说说C#中IList与List区别
首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口. 它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,ILis ...
- iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )
在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用: