利用getHibernateTemplate实现简单的操作
Posted 陈驰字新宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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实现简单的操作的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 利用 Combine 实时监听网络服务器在线状态的极简实现
Hibernate hql getHibernateTemplate()常用方法汇总
休眠/春季:getHibernateTemplate().save(...) 冻结/挂起
getHibernateTemplate.save() - 如何获取受影响的行/新的自动增量