`

ssh框架整合常用方法总结

阅读更多

BaseServiceInter.java:

package com.cz.base;

import java.util.List;

public interface BaseServiceInter {

	//声明一些常用的方法
	//1.通过id获取对象
	public Object findById(Class clazz,java.io.Serializable id);
	//2.查询方法 hql 
	public List executeQuery(String hql,Object []parameters);
	//3.查询方法 带分页
	public List executeQueryByPage(String hql,Object []parameters,int pageNow,int PagesSize);
	//4.添加一个对象
	public void add(Object obj);
	//5.统一的执行hql->删除,修改 hql="update domain对象 where ?"
	public List executeUpdate(String hql,Object []parameters);
	//6.返回一个对象的操作
	public Object uniqueQuery(String hql,Object []parameters);
	
	//7.得到hql,返回pageCount
	public int queryPageCount(String hql,Object [] parameters,int pageSize);
	//8.根据id号删除对象
	public void delById(Class clazz,java.io.Serializable id);
	
	//9.通过Object修改
	public void update(Object object);
	
}

 

BaseService.java:

package com.cz.base;

import java.io.Serializable;
import java.util.Iterator;
import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional;

@Transactional
public abstract class BaseService implements BaseServiceInter {

	@Resource
	private SessionFactory sessionFactory;
	
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

	public void add(Object obj) {
		
		this.sessionFactory.getCurrentSession().save(obj);

	}

	//统一查询方法(hql)
	public List executeQuery(String hql, Object[] parameters) {
		// TODO Auto-generated method stub
		
		Query query=this.sessionFactory.getCurrentSession().createQuery(hql);

		//注入?值
		if(parameters!=null && parameters.length>0){
			for(int i=0;i<parameters.length;i++){
				query.setParameter(i, parameters[i]);
				
			}
		}
		
		return query.list();
	}

	//分页
	public List executeQueryByPage(String hql, Object[] parameters,
			int pageNow, int PagesSize) {
		// TODO Auto-generated method stub
		Query query=this.sessionFactory.getCurrentSession().createQuery(hql);
		
		if(parameters!=null && parameters.length>0){
			for(int i=0;i<parameters.length;i++){
				query.setParameter(i, parameters[i]);
				
			}
		}
	
		//体现分页
		return query.setFirstResult((pageNow-1)*PagesSize).setMaxResults(PagesSize).list();
	}

	//统一的修改和删除
	public List executeUpdate(String hql, Object[] parameters) {
		// TODO Auto-generated method stub
		return null;
	}

	public Object findById(Class clazz, Serializable id) {
		// TODO Auto-generated method stub
		return this.sessionFactory.getCurrentSession().get(clazz, id);
	}

	public Object uniqueQuery(String hql, Object[] parameters) {
		// TODO Auto-generated method stub
		Query query=this.sessionFactory.getCurrentSession().createQuery(hql);
		//给?赋值
		if(parameters!=null && parameters.length>0){
			for(int i=0;i<parameters.length;i++){
				query.setParameter(i, parameters[i]);
			}
		}
		
		return query.uniqueResult();
	}
	
	public int queryPageCount(String hql, Object[] parameters, int pageSize) {
		// TODO Auto-generated method stub
		//获取rowCount
	/*	List list=this.executeQuery(hql, parameters);
		Iterator iteator=list.iterator();
		if(iteator.hasNext()){
			
		}*/
		Object obj=this.uniqueQuery(hql, parameters);
		//System.out.println("obj value= "+ obj);//obj如果等于rowConunt
		int rowCount=Integer.parseInt(obj.toString());
		
		
		return (rowCount-1)/pageSize+1;
	}
	
	public void delById(Class clazz,Serializable id) {
		// TODO Auto-generated method stub
		Session session=this.sessionFactory.getCurrentSession();
		session.delete(this.findById(clazz, id));
	}
	
	public void update(Object object) {
		// TODO Auto-generated method stub
		this.sessionFactory.getCurrentSession().update(object);
	}
}

 

注: 配置@Transactoinal的目的就是让事务管理器,去接管该Service的事务

 

分享到:
评论

相关推荐

    SSH框架整合jar包

    SSH框架整合jar包SSH框架整合jar包SSH框架整合jar包SSH框架整合jar包SSH框架整合jar包

    ssh框架整合需要的 jar包

    ssh框架整合需要的 jar包

    SSH框架整合图解(3个方案)

    SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3...

    Java SSH 框架整合,学习源码

    Java SSH框架整合,分分钟学会!!

    SSH框架整合的jar包

    这个压缩包包含了SSH框架的的一些jar包,是自己写ssh项目总结出来的,小伙伴们有兴趣可以下载哟。

    SSH框架整合教程

    对初学Struts+Spring+Hibernate三大框架是很好的资料,对每个框架的解释和三大框架的整合详解教程

    ssh框架整合配置文件

    ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ...

    SSH 框架整合实例

    SSH框架整合 (增删改查) 附带JAR包资源 有详细的注释

    ssh框架jar包整合

    ssh框架整合jar包,整合好好的jar包资源,分散下载麻烦,直接打包,解压能用,使用jar包自己整合,程序员多练习

    ssh框架整合jar包

    ssh框架整合jar包,hibernate+struts2+spring常用jar包

    ssh 框架整合总结

    ssh 框架 整合 总结 优点 缺点 以及ssh mvc 和三层架构的概述。

    SSH框架整合步骤详解

    SSH框架整合步骤详解

    SSH框架整合实战教程

    SSH框架整合实战教程

    最详细的ssh框架整合讲解

    最详细的ssh框架整合讲解

    SSH三大框架整合jar包

    最新整理的比较全面的SSH三大框架整合所需要的jar包,自己特意整理出来,方便大家下载使用!最新整理的比较全面的SSH三大框架整合所需要的jar包,自己特意整理出来,方便大家下载使用!

    SSH框架整合项目源码

    三大框架整合开发案例,最适合初学者。对一个发布系统的优化及增删改查

    ssh框架整合+ueditor富文本编辑器demo

    ssh框架整合demo,附带调试完毕的ueditor富文本编辑器demo,项目中webContent下的readme文件夹,下有readme.txt项目说明文档(ssh整合的文档),ueditor富文本编辑器的demo说明文档,见我的博客文章,有对应的一篇。

    ssh框架整合

    ssh框架整合,struts2 spring hibernate框架整合

    SSH框架整合jar包(分类列出)

    SSH框架整合jar包(分类列出)SSH框架整合jar包(分类列出)SSH框架整合jar包(分类列出)SSH框架整合jar包(分类列出)SSH框架整合jar包(分类列出)SSH框架整合jar包(分类列出)SSH框架整合jar包(分类列出)

Global site tag (gtag.js) - Google Analytics