- 浏览: 151234 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
hx0637:
楼主!小弟要面临面试了,能否指导下小弟?
面试 深圳一家公司的 -
kljismi:
你好,我现在正在开这项目的代码,但是我不明白@Privileg ...
权限管理模块分析 -
yzhw:
终于找到了
ImageSizer.java -
sunloveny:
国
struts国际化 -
jackotty:
谢谢楼主的分享
struts validator验证框架
利用ThreadLocal实现分页参数的透明传输(通过使用ThreadLocal能够避免在Manager的接口设计中添加分页参数)
- 重点理解ThreadLocal的基本原理以及实现方法
- 重点理解ThreadLocal的基本原理以及实现方法
package com.bjsxt.oa; public class SystemContext { private static ThreadLocal offset = new ThreadLocal(); private static ThreadLocal pagesize = new ThreadLocal(); public static void setOffset(int _offset){ offset.set(_offset); } public static int getOffset(){ Integer _offset = (Integer)offset.get(); if(_offset == null){ return 0; } return _offset; } public static void removeOffset(){ offset.remove(); } public static void setPagesize(int _pagesize){ pagesize.set(_pagesize); } public static int getPagesize(){ Integer _pagesize = (Integer)pagesize.get(); if(_pagesize == null){ return Integer.MAX_VALUE; } return _pagesize; } public static void removePagesize(){ pagesize.remove(); } }
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.SystemContext; import com.bjsxt.oa.manager.SystemException; public abstract class AbstractManager extends HibernateDaoSupport { public PagerModel searchPaginated(String hql){ return searchPaginated(hql, null); } public PagerModel searchPaginated(String hql,Object value){ return searchPaginated(hql, new Object[]{value}); } public PagerModel searchPaginated(String hql,Object[] values){ return searchPaginated(hql, values, SystemContext.getOffset(), SystemContext.getPagesize()); } 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) { 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); } 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 1336利用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 1134提供初始化数据的代码 ... -
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_05
2009-01-18 11:41 986从现有的分页处理方案中,抽象出AbstractManager, ... -
oa_04
2009-01-18 11:30 1171利用Pager-Taglib实现机构 ... -
oa_03
2009-01-18 11:22 1189在做完机构管理的业务逻辑之后,下面考虑呈现层的实现。 1、 ... -
oa_02
2009-01-18 11:05 1023整合Spring和Hibernate之后,对于业务逻辑类的测试 ... -
oa_01+
2009-01-18 10:55 1240package com.bjsxt.oa.manager.im ... -
oa_01
2009-01-18 10:48 1279oa_01: 1、建立机构管理的实体类,并映射【重点理解多对 ...
相关推荐
【标签】"oa_06_readme.txt"表明了readme文件的内容可能涵盖了该项目的详细说明,包括安装步骤、配置信息、运行指南等。 综上所述,"oa_06.rar"压缩包内包含的OA系统是一个适合初学者的Java编程实践项目,涵盖了...
www.pudn.com.txt可能是一个文档,包含了该OA系统在Pudn.com网站上的发布信息或者下载链接,而06_办公自动化管理系统可能是该系统的源代码包或者相关文档,供开发者参考和学习。 总的来说,这个“oa.rar”压缩包...
文件名"oa_06"可能是指该压缩包中的第六个与OA系统相关的文件,可能是源代码、配置文件、数据库脚本或者是测试数据等。为了更好地利用这个资源,我们需要解压并根据文件类型进一步研究。如果是源代码,可以阅读并...
在"oa_06"这个子文件中,可能包含了JavaOA系统的一个特定模块或者更新版本,具体内容需要实际查看文件才能进一步分析。总的来说,JavaOA的开发涉及了软件工程的多个层面,包括后端开发、前端设计、数据库管理、系统...
oasystem_2016-12-06.sql
在【压缩包子文件的文件名称列表】中,"oa_gl_06"可能代表的是通达OA系统中的“办公管理”或“财务管理”的某个子模块,可能是系统的第六个版本或者第六部分的代码。通常,这样的命名方式可能表明这个文件包含了与...
通达oa2013 2012.11.06集团版授权
通过深入研究2013-06-10 MVCOA工作流的相关文档,我们可以更全面地理解这一系统如何实施和优化办公自动化,从而为企业的运营效率提升提供有价值的参考。这个压缩包文件可能包含设计文档、源代码示例、用户手册等内容...
信呼协同办公OA系统是开源的一款办公系统,跨平台的系统,支持APP,pc网页版,pc客户端等。 信呼协同办公OA系统...日期:2022-06-02 1、完善系统安全性。 2、系统优化等。 3、添加水印功能。 4、增加进销存模块。
资源目录:【】Java就业班OA项目实战01【】Java就业班OA项目实战02【】Java就业班OA项目实战03【】Java就业班OA项目实战04【】Java就业班OA项目实战05【】Java就业班OA项目实战06【】Java就业班OA项目实战07【】Java...
通达OA2010 3.6 110610 补丁自动升级-纯净版(含全套热门组件破解版本)——通达OA2010完美平台版最新OA补丁集成“OA破解补丁、通达即时通讯服务器版本IM、OA精灵 去官方链接及去除通达官方相关信息版(通达OA精灵去...
3、 通达OA 精灵版本:最新版本号 2011-06-15(去除通达官方信息及链接,已封装,安装即可) 4、 邮件代理服务程序:最新版本号 2011-05-20 补丁 5、 定时任务服务版本:最新版本号 2010-12-03补丁 6、 守护服务...
产品简介:本作品为【OA办公系统员工端高保真原型模板】配套的后台管理端原型模版,企业可通过该系统高效地处理办公行政人事等事务。管理端涵盖了工作台 、日程待办、组织、员工、考勤、薪酬、审批、招聘、绩效、...
3、 通达OA 精灵版本:最新版本号 2011-06-15(去除通达官方信息及链接,已封装,安装即可) 4、 邮件代理服务程序:最新版本号 2011-05-20 补丁 5、 定时任务服务版本:最新版本号 2010-12-03补丁 6、 守护服务...
专业OA办公系统源码 开发工具:Visual Studio .NET 2005 + Server2005 项目描述:OA办公系统基于B/S架构设计。 包括文件管理、共享下载、消息管理、公文流传、通知管理、内部论坛、人力资源管理、资产管理 等。 ...
在“06办公自动化管理系统”这个文件中,可能包含了OA系统的源代码或部分模块的实现,初学者可以通过阅读和学习这些代码,了解OA系统如何处理上述功能。代码可能涉及到的技术有: - **Web开发框架**:如Spring Boot...
3、 通达OA 精灵版本:最新版本号 2011-06-15(去除通达官方信息及链接,已封装,安装即可 4、 邮件代理服务程序:最新版本号 2011-05-20 补丁 5、 定时任务服务版本:最新版本号 2010-12-03补丁) k) 6、 守护服务...
小微OA系统是一个开源的,简单易用,审批灵活,...小微OA系统领悟版 1.0 更新日志:2015-09-06 1.编辑器修改为Tinycme 2.修复邮件接受两个以上附件时错误 3。简化任务流程 取消接受环节。 4。改善微信企业号相关功能。
通达OA2013ADV最新版本,版本号7.25.141212 由于csdn只能上传60M以内的文件,请在这里下载完整版本 http://pan.baidu.com/s/1eQgXy06
安装通达OA2013简体中文版 更新于 2012-11-06 16:47 本安装程序不能用于版本升级,也不要覆盖安装正在运行中的旧版本OA,否则会造成数据丢失 2.******补丁开始安装步骤:安装时请点击停止通达服务,退出右下角通达...