- 浏览: 151270 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
hx0637:
楼主!小弟要面临面试了,能否指导下小弟?
面试 深圳一家公司的 -
kljismi:
你好,我现在正在开这项目的代码,但是我不明白@Privileg ...
权限管理模块分析 -
yzhw:
终于找到了
ImageSizer.java -
sunloveny:
国
struts国际化 -
jackotty:
谢谢楼主的分享
struts validator验证框架
从现有的分页处理方案中,抽象出AbstractManager,以便将分页逻辑进行封装处理,
使得分页处理更加简单(不需要拷贝分页逻辑)
- 重点理解抽象的概念(如何抽象?抽象哪些内容?)
使得分页处理更加简单(不需要拷贝分页逻辑)
- 重点理解抽象的概念(如何抽象?抽象哪些内容?)
package com.bjsxt.oa.manager.impl; import java.util.List; import org.hibernate.Query; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.SystemException; public abstract class AbstractManager extends HibernateDaoSupport { public PagerModel searchPaginated(String hql,int offset,int pagesize){ return searchPaginated(hql, null, offset, pagesize); } public PagerModel searchPaginated(String hql,Object value,int offset,int pagesize){ return searchPaginated(hql, new Object[]{value}, offset, pagesize); } public PagerModel searchPaginated(String hql,Object[] values,int offset,int pagesize){ //获得总记录数 String countHql = getCountQuery(hql); Query query = getSession().createQuery(countHql); if(values != null && values.length > 0){ for(int i=0; i<values.length; i++){ query.setParameter(i, values[i]); } } int total = ((Long)query.uniqueResult()).intValue(); //获得当前页的数据 query = getSession().createQuery(hql); if(values != null && values.length > 0){ for(int i=0; i<values.length; i++){ query.setParameter(i, values[i]); } } query.setFirstResult(offset); query.setMaxResults(pagesize); List datas = query.list(); PagerModel pm = new PagerModel(); pm.setDatas(datas); pm.setTotal(total); return pm; } /** * 根据HQL语句,获得查询总记录数的HQL语句 * 如: * select o from Organization o where o.parent is null * 经过转换,得到 * select count(*) from Organization o where o.parent is null * @param hql * @return */ private String getCountQuery(String hql){ int index = hql.indexOf("from"); if(index != -1){ return "select count(*) " + hql.substring(index); } throw new SystemException("无效的HQL查询语句【"+hql+"】"); } }
package com.bjsxt.oa.manager.impl; import java.util.List; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.bjsxt.oa.PagerModel; import com.bjsxt.oa.manager.OrgManager; import com.bjsxt.oa.manager.SystemException; import com.bjsxt.oa.model.Organization; public class OrgManagerImpl extends AbstractManager implements OrgManager { public void addOrg(Organization org, int parentId) { if(parentId != 0){ org.setParent(findOrg(parentId)); } getHibernateTemplate().save(org); //自动生成机构编号 org.setSn( (org.getParent() == null ? "" : org.getParent().getSn() + "_") + org.getId() ); getHibernateTemplate().update(org); } public void delOrg(int orgId) { Organization org = findOrg(orgId); //判断子机构列表是否为空 if(org.getChildren().size() > 0){ //throw new RuntimeException("存在子机构信息,不允许删除"); // SystemException se = new SystemException(""); // se.setKey(); // se.setValues(..); throw new SystemException("errors.org.hassuborg",new Object[]{org.getName(),org.getChildren().size()},"存在子机构信息,不允许删除"); } //判断人员是否非空 String hql = "select count(*) from Person p where p.org.id = ?"; Long personSize = (Long)getSession().createQuery(hql).setParameter(0, orgId).uniqueResult(); if(personSize > 0){ throw new RuntimeException("机构下面有人员信息,不允许删除"); } getHibernateTemplate().delete(org); } public Organization findOrg(int orgId) { return (Organization)getHibernateTemplate().load(Organization.class, orgId); } public PagerModel searchOrgs(int parentId,int offset,int pagesize) { String hql = "select o from Organization o where o.parent is null"; if(parentId != 0){ hql = "select o from Organization o where o.parent.id = "+parentId; } return searchPaginated(hql,offset, pagesize); } public void updateOrg(Organization org, int parentId) { if(parentId != 0){ org.setParent(findOrg(parentId)); } getHibernateTemplate().update(org); } }
发表评论
-
oa_22
2009-02-04 22:20 1816oa_22: 结合Freemarker,将动态表单显示在公文 ... -
oa_21
2009-02-04 22:18 1221oa_21: 添加动态表单呈现层代码 - 理解批量数据的 ... -
oa_20
2009-02-04 22:15 1293oa_20: 1、创建动态表单的领域模型 FieldInp ... -
oa_18
2009-02-04 22:07 862oa_18: 实现WorkflowManager接口,以及流 ... -
oa_17
2009-02-04 22:03 1229集成JBPM到OA系统,并实现JbpmFacade接口 - ... -
oa_16
2009-02-04 21:58 949oa_16: 根据用例分析的结果,创建WorkflowMan ... -
oa_15:
2009-02-04 21:55 887oa_15: 根据公文流转领域模型创建相关的实体类,并使用x ... -
oa_14
2009-02-04 21:51 1337利用JSTL函数实现即时认证 - SecurityFunc ... -
oa_13
2009-02-04 21:35 1392oa_13: 实现登录功能 - LoginAction ... -
oa_11
2009-02-04 20:51 916初步实现授权管理的界面,重点在于: 1、理解DWR如何使用,理 ... -
oa_10
2009-01-18 12:54 1135提供初始化数据的代码 ... -
oa_09
2009-01-18 12:48 1780提供人员管理、模块管理、角色管理、用户管理相关的代码。 同时 ... -
oa_08
2009-01-18 12:08 1064创建AclManager接口,并实现 - 理解权限管理子系统 ... -
oa_07
2009-01-18 11:54 1290引入Ant和Xdoclet的支持, ... -
oa_06
2009-01-18 11:48 1059利用ThreadLocal实现分页参数的透明传输(通过使用Th ... -
oa_04
2009-01-18 11:30 1171利用Pager-Taglib实现机构 ... -
oa_03
2009-01-18 11:22 1190在做完机构管理的业务逻辑之后,下面考虑呈现层的实现。 1、 ... -
oa_02
2009-01-18 11:05 1024整合Spring和Hibernate之后,对于业务逻辑类的测试 ... -
oa_01+
2009-01-18 10:55 1242package com.bjsxt.oa.manager.im ... -
oa_01
2009-01-18 10:48 1280oa_01: 1、建立机构管理的实体类,并映射【重点理解多对 ...
相关推荐
OA_Automotive_Ethernet_ECU_TestSpecification_Layer_1_v3.0 OA_Automotive_Ethernet_ECU_TestSpecification_Layer_2_v3.0 OA_Automotive_Ethernet_ECU_TestSpecification_Layer_3-7_v3.0
文件列表中的`oa_12.rar`到`oa_05.rar`可能包含了该jbpm-oa系统的不同版本或更新,每个RAR文件可能包含源代码、数据库脚本、配置文件、文档资料等,供开发者学习、部署或升级系统使用。通过这些文件,开发者可以深入...
【标题】"NC65 02 patch_与OA单点登录补丁_ssx_2019-05-07.zip" 提供的信息显示,这是一个针对NC65版本的02号补丁,主要功能是实现与OA(Office Automation,办公自动化系统)的单点登录集成。"ssx"可能是开发人员或...
【标题】"ItcastOA05.rar_OA系统_Java__OA系统_Java_" 指的是一款基于Java技术开发的OA(Office Automation)系统,其中"05"可能代表项目开发的第五个阶段或者版本号。这个系统是用SSH(Struts2、Spring、Hibernate...
从提供的压缩包文件"oa_gl_05"来看,这可能是通达OA系统中的财务管理模块的一部分,"gl"通常代表“会计”或“财务”(Guanli,在中文中常用于表示管理),而"05"可能是一个版本编号或者模块分类。在协同办公系统中,...
【OA工作流应用】是指利用特定的软件工具自动化执行一系列任务的过程,特别是在IT领域中,如WQJDomino /Notes 工作流,它能够有效地管理企业的业务流程。工作流应用程序的核心价值在于提高效率、降低成本,减少错误...
本项目“OA系统(vs05+sql05)”采用的是2005年版本的开发工具Visual Studio .NET(VS05)和数据库管理系统SQL Server 2005进行构建。 1. **ASP.NET 2.0**: ASP.NET是微软推出的用于构建Web应用程序的框架,2.0版本...
资源名称:Java就业班OA项目实战培训视频【12讲】资源目录:【】Java就业班OA项目实战01【】Java就业班OA项目实战02【】Java就业班OA项目实战03【】Java就业班OA项目实战04【】Java就业班OA项目实战05【】Java就业班...
【OA项目招标文件-2011-05-27.doc】是一个详细的OA系统招标文件,涉及到的主要知识点包括以下几个方面: 1. **投标邀请**: - 熔盛集团通过邀标方式选择OA系统软件供应商。 - 开标时间设定在特定日期的10点,投标...
更新日期:2011-05-20 大小:3.9MB 版本:T2011(20110520) 操作系统:WinXP/Vista/Win7/Win2003/Win2008/Linux 工作流平台 支持表单设计支持列表、输入框、日历、成员、部门等控件支持自由流程与固定流程 公文...
通达oa2011-05-20破解im,好用,破解了,无限制的
通达OA2010 3.6.110801破解补丁同步官方纯净版(请紧急替换早期版本) 凡 stinna 所发布的早期版本,请即时使用此版本替换。 声明:本补丁需要停止组件,再进行破解。 版本升级: 1、先下载官方最新修正合集...
通达OA2010完美平台版最新OA补丁集成“OA破解补丁、通达即时通讯服务器版本IM、OA精灵 去官方链接及去除通达官方相关信息版(通达OA精灵去官方信息美化安装版)、通达报表组件、Zlchat视频会议系统2.4授权1000人补丁...
【文件名】:"OA_SSH_05":这个文件可能包含的是项目开发过程中的第五个阶段或版本,可能包括部分源码、配置文件、数据库脚本等,具体内容需要解压查看。 总结来说,使用MyEclipse 8.5和SSH框架开发OA系统,可以...
1、 内部版本号:最新版本号 3.6.110712 补丁(永久解决通达OA2010 不限用户数,可无限添加人数) 2、 即时通讯服务版本:最新版本号 2011-06-10 补丁 (永久解决即时通讯服务器程序IM突破30人,不限用户数,即时...
数据库脚本,如"2010.05.02.sql",通常用于创建和初始化数据库结构。这个SQL文件包含了创建表格、设置字段类型、定义约束等数据库对象的SQL语句。在OA办公管理系统中,数据库存储了用户信息、权限设置、工作流程状态...
(版本:1.0 2006.04.05) 1.同时支持多种数据库。 2.程序模块化编写,各功能模块基本都已进行封装,调用方便。 3.采用仿C/S操作界面,操作简单,易于上手,界面仿江南行客的NET-OA系统,功能不相同。 4.重要...
05-颠覆传统OA市场掌控移动互联网新机遇.pptx
北大青鸟 Accp 5.0 电子课件 Y2 HR CRM OA B2C毕业设计项目开发(HR CRM OA B2C Project) 共计15个压缩包,需要全部下载才能解压.