package com.oa.web;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public abstract class AbstractServices extends HibernateDaoSupport {
public PageModel searchPaginated(String hql){
return searchPaginated(hql, null);
}
public PageModel searchPaginated(String hql,Object[] values){
return searchPaginated(hql, values, SystemContext.getOffset(), SystemContext.getPagesize());
}
public PageModel searchPaginated(String hql,Object value,int offset,int pagesize){
return searchPaginated(hql, new Object[]{value}, offset, pagesize);
}
/**
*
*
* 功能:公共分页1
*
*/
public List query(final String hql, final int currentpage,
final int pageunit, final Object... Params) throws Exception {
return (List) this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query q = session.createQuery(hql);
if (Params != null && Params.length > 0) { // 取出可变参数中设置的条件
int i = 0;
for (Object obj : Params) {
if (obj != null) {
q.setString(i, obj.toString());
i++;
}
}
}
// q.setFirstResult((currentpage-1)*pageunit); //分页展现
// q.setMaxResults(pageunit);
try {
page(q, currentpage, pageunit);
} catch (Exception e) {
e.printStackTrace();
}
List list = q.list();
return list;
}
});
}
/**
*
*
* 功能:公共分页2
*
*/
public Query page(final Query q, final int currentpage, final int pageunit)
throws Exception {
return (Query) this.getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
q.setFirstResult((currentpage - 1) * pageunit);
q.setMaxResults(pageunit);
return q;
}
});
}
public Object queryAggregation(final String hql, final Object... Params)
throws Exception {
return this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query q = session.createQuery(hql);
if (Params != null && Params.length > 0) {
int i = 0;
for (Object obj : Params) {
if (obj != null) {
q.setString(i, obj.toString());
i++;
}
}
}
return q.uniqueResult();
}
});
}
/**
* 分页查询语句
* @param hql 查询的hql
* @param values 参数数组
* @param offset 当前页
* @param pagesize 每页显示几条记录
* @return
*/
public PageModel searchPaginated(String hql,Object[] values,int offset,int pagesize){
//获得总记录数
String countHql = getCountQuery(hql);
Query query=getQuery(countHql,values);
int total = ((Long)query.uniqueResult()).intValue();
//获得当前页的数据
query =getQuery(hql,values);
query.setFirstResult(offset);
query.setMaxResults(pagesize);
List datas = query.list();
PageModel pm = new PageModel();
pm.setList(datas);
pm.setTotalRecords(total);
pm.setPageNo(offset);
pm.setPageSize(pagesize);
return pm;
}
/**
* 根据HQL语句,获得查询总记录数的HQL语句
* @param hql
* @return
*/
private String getCountQuery(String hql){
int index = hql.indexOf("from");
if(index != -1){
return "select count(*) " + hql.substring(index);
}
throw new RuntimeException("无效的HQL查询语句【"+hql+"】");
}
/**
* 封装了返回为Query的方法
* @param hql
* @return
*/
private Query getQuery(String hql,Object[] values){
Query query = this.getSession().createQuery(hql);
if(values != null && values.length > 0){
for(int i=0; i<values.length; i++){
query.setParameter(i, values[i]);
}
}
return query;
}
/**
* 封装增加操作
*/
public void save(Object o){
this.getSession().save(o);
}
/**
* 封装删除操作
* @param clazz
* 要删除的类
* @param objectId
* 对象ID
*/
public void deleteById(Class clazz,int objectId){
Object o=this.getSession().get(clazz,objectId);
delete(o);
}
public void delete(Object o){
this.getSession().delete(o);
}
/**
* 封装删除操作
* @param o
* 要删除的对象
*/
public void update(Object o){
this.getSession().update(o);
}
public Object load(Class theClass,Serializable id){
return this.getSession().load(theClass, id);
}
/**
* 带查询的不是分页语句
* @param hql
* @param values
* @return
*/
public List getResultList(String hql,Object[] values){
Query query=getQuery(hql,values);
List ls=query.list();
return query.list();
}
public List getResultList(String hql,Object value){
return getResultList(hql,new Object[]{value});
}
public List getResultList(String hql){
return getResultList(hql,null);
}
public List getResultListSQL(String sql){
return this.getSession().createSQLQuery(sql).list();
}
public Object getuniqueResult(String hql,Object[] values){
Query query=getQuery(hql,values);
return query.uniqueResult();
}
public Object getuniqueResult(String hql,Object value){
return getuniqueResult(hql,new Object[]{value});
}
public Object getuniqueResult(String hql){
return getuniqueResult(hql,null);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
225JSP采购管理系统
共179个文件
gif:45个
jar:36个
class:35个
5星 · 超过95%的资源 需积分: 9 95 下载量 195 浏览量
2013-11-13
19:46:35
上传
评论
收藏 16.59MB RAR 举报
温馨提示
1.零件材料供应商管理 2.材料基础数据管理 3.材料订单管理 4.应付款管理。
资源推荐
资源详情
资源评论
收起资源包目录
225JSP采购管理系统 (179个子文件)
PriceAction.class 8KB
OrderAction.class 8KB
BaseAction.class 6KB
AbstractServices.class 6KB
SupplierAction.class 5KB
ProductAction.class 4KB
UserAction.class 4KB
SupplierServicesImpl.class 3KB
PageInfo.class 3KB
ProductServicesImpl.class 3KB
UserServicesImpl.class 3KB
TOrder.class 3KB
TSupplier.class 3KB
PriceServicesImpl.class 3KB
OrderServicesImpl.class 3KB
TPrice.class 3KB
TProduct.class 2KB
LoginAction.class 2KB
SetCharacterEncodingFilter.class 2KB
PagerFilter.class 2KB
AbstractServices$1.class 2KB
TUser.class 2KB
Test.class 2KB
AbstractServices$3.class 1KB
LoginServicesImpl.class 1KB
PageModel.class 1KB
SystemContext.class 1KB
AbstractServices$2.class 1KB
DB.class 979B
SupplierServices.class 544B
ProductServices.class 534B
UserServices.class 504B
OrderServices.class 420B
PriceServices.class 420B
LoginServices.class 271B
.classpath 5KB
css.css 16KB
style.css 11KB
Thumbs.db 112KB
JSP采购管理系统录像.exe 1.11MB
welcome.gif 164KB
ico15.gif 8KB
ico14.gif 8KB
ico16.gif 8KB
ico13.gif 7KB
nav03.gif 4KB
nav01.gif 4KB
shape01.gif 3KB
ico02.gif 2KB
ico24.gif 1KB
nav02.gif 1KB
ico07.gif 1KB
line01.gif 935B
ico01.gif 654B
top02.gif 559B
loadon.gif 538B
dhbutton04.gif 499B
dhbutton01.gif 499B
dhbutton03.gif 499B
dhbutton02.gif 499B
dhbutton05.gif 415B
ico12.gif 361B
ico11.gif 326B
button05.gif 324B
button10.gif 301B
button06.gif 288B
button09.gif 272B
button03.gif 256B
button04.gif 224B
button08.gif 210B
button07.gif 203B
ico05.gif 185B
ico06.gif 180B
nav04.gif 163B
nav06.gif 152B
nav05.gif 98B
top.gif 73B
navend.gif 67B
ico04.gif 64B
left.gif 62B
newling.gif 60B
ico03.gif 60B
nav07.gif 52B
newline.gif 50B
spacer.gif 43B
top.html 1KB
mainfra.html 951B
spring.jar 2.81MB
hibernate3.jar 2.08MB
jgroups-2.2.8.jar 1.54MB
xwork-core-2.1.6.jar 1.49MB
ojdbc14.jar 1.12MB
xerces-2.6.2.jar 987KB
struts2-core-2.1.8.1.jar 738KB
jboss-jmx.jar 578KB
sqljdbc.jar 570KB
jboss-common.jar 570KB
jboss-cache.jar 505KB
proxool-0.8.3.jar 465KB
javassist.jar 449KB
共 179 条
- 1
- 2
资源评论
- XRJ10284663262013-12-28还不错,解决问题
- wangbin187104116702014-03-03挺好的。内容有用
- love_java_web2015-04-04不是我想要的啊
- 疯狂面条狗2014-08-21不错,有一定参考价值
jspsj8
- 粉丝: 3
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功