ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:24.33KB ,
资源ID:25143985      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25143985.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大学生就业管理系统详细设计说明书2.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大学生就业管理系统详细设计说明书2.docx

1、大学生就业管理系统详细设计说明书2大学生就业管理系统详细设计说明书2大学生就业管理 详细设计说明书 1 1 引言 1.1 编写目的 本详细设计说明书跟据博客信息管理系统详细设计说明书编写,描述了系统的详细设计,并为系统代码的编写提供依据。本文档的预期读者为:项目经理、系统分析员、测试经理、项目组长、系统开发人员。 1.2 系统命名与版本 大学生就业管理系统java命名规范 大学生就业管理系统V1.0 1.3 定义 1.4 参考资料 博客信息管理系统概要设计说明书。 2 系统程序的结构 3 设计说明 3.1 数据库基本操作 3.1.1 类DB.java的设计 方法名称:ExportDB(Data

2、Source ds) 语义 由DataSource数据源ds获取Connection连接对象conn 方法名称:ResultSet openSql(String sql) 语义 由Connection连接对象conn获取Statement对象stmt; 由Statement对象stmt执行sql查询 返回ResultSet查询结果 方法名称:ResultSet execSql(String sql) 语义 由Connection连接对象conn获取Statement对象stmt; 2 由Statement对象stmt执行sql数据更新操作(包括新增、修改) 返回ResultSet数据更新操作结

3、果 3.2 技能维护 3.2.1 类HibernateDao.java的设计 /* * Copyright (c) 2005-2009 * * Licensed under the Apache License, Version 2.0 (the License); * * $Id: HibernateDao.java 441 2009-09-07 15:47:34Z calvinxiu $ */ package com.zds.spring.dao.base; import java.io.Serializable; import java.util.ArrayList; import ja

4、va.util.List; import java.util.Map; import mons.lang.StringUtils; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.SessionFactory; import org.hibernate.criterion.CriteriaSpecification; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Disjunction

5、; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Projection; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.hibernate.impl.CriteriaImpl; 3 import org.hibernate.transform.ResultTransfo

6、rmer; import org.springframework.util.Assert; import org.springside.modules.orm.PropertyFilter; import org.springside.modules.orm.PropertyFilter.MatchType; import org.springside.modules.utils.ReflectionUtils; import mon.page.Page; /import mon.page.PropertyFilter; /import mon.page.PropertyFilter.Matc

7、hType; /* * 封装SpringSide扩展功能的Hibernat DAO泛型基类. * * 扩展功能包括分页查询,按属性过滤条件列表查询. * 可在Service层直接使用,也可以扩展泛型DAO子类使用,见两个构造函数的注释. * * param DAO操作的对象类型 * param 主键类型 * * author calvin */ public class HibernateDao extends SimpleHibernateDao /* * 用于Dao层子类使用的构造函数. * 通过子类的泛型定义取得对象类型Class. * eg. * public class UserDa

8、o extends HibernateDao * 4 */ public HibernateDao() super(); /* * 用于省略Dao层, Service层直接使用通用HibernateDao的构造函数. * 在构造函数中定义对象类型Class. * eg. * HibernateDao userDao = new HibernateDao(sessionFactory, User.class); */ public HibernateDao(final SessionFactory sessionFactory, final Class entityClass) super(se

9、ssionFactory, entityClass); / 分页查询函数 / /* * 分页获取全部对象. */ public Page getAll(final Page page) return findPage(page); /* * 按HQL分页查询. 5 * * param page 分页参数.不支持其中的orderBy参数. * param hql hql语句. * param values 数量可变的查询参数,按顺序绑定. * * return 分页查询结果, 附带结果列表及所有查询时的参数. */ SuppressWarnings(unchecked) public Page

10、findPage(final Page page, final String hql, final Object. values) Assert.notNull(page, page不能为空); Query q = createQuery(hql, values); if (page.isAutoCount() long totalCount = countHqlResult(hql, values); page.setTotalCount(totalCount); setPageParameter(q, page); List result = q.list(); page.setResul

11、t(result); return page; /* * 按HQL分页查询. * * param page 分页参数. * param hql hql语句. 6 * param values 命名参数,按名称绑定. * * return 分页查询结果, 附带结果列表及所有查询时的参数. */ SuppressWarnings(unchecked) public Page findPage(final Page page, final String hql, final Map values) Assert.notNull(page, page不能为空); Query q = createQue

12、ry(hql, values); if (page.isAutoCount() long totalCount = countHqlResult(hql, values); page.setTotalCount(totalCount); setPageParameter(q, page); List result = q.list(); page.setResult(result); return page; /* * 按Criteria分页查询. * * param page 分页参数. * param criterions 数量可变的Criterion. * * return 分页查询结果

13、.附带结果列表及所有查询时的参数. 7 */ SuppressWarnings(unchecked) public Page findPage(final Page page, final Criterion. criterions) Assert.notNull(page, page不能为空); Criteria c = createCriteria(criterions); if (page.isAutoCount() int totalCount = countCriteriaResult(c); page.setTotalCount(totalCount); setPageParame

14、ter(c, page); List result = c.list(); page.setResult(result); return page; /* * 设置分页参数到Query对象,辅助函数. */ protected Query setPageParameter(final Query q, final Page page) /hibernate的firstResult的序号从0开始 q.setFirstResult(page.getFirst() - 1); q.setMaxResults(page.getPageSize(); return q; 8 /* * 设置分页参数到Cr

15、iteria对象,辅助函数. */ protected Criteria setPageParameter(final Criteria c, final Page page) /hibernate的firstResult的序号从0开始 c.setFirstResult(page.getFirst() - 1); c.setMaxResults(page.getPageSize(); if (page.isOrderBySetted() String orderByArray = StringUtils.split(page.getOrderBy(), ,); String orderArra

16、y = StringUtils.split(page.getOrder(), ,); Assert.isTrue(orderByArray.length = orderArray.length, 分页多重排序参数中,排序字段与排序方向的个数不相等); for (int i = 0; i orderByArray.length; i+) if (Page.ASC.equals(orderArrayi) c.addOrder(Order.asc(orderByArrayi); else c.addOrder(Order.desc(orderByArrayi); return c; /* * 执行c

17、ount查询获得本次Hql查询所能获得的对象总数. 9 * * 本函数只能自动处理简单的hql语句,复杂的hql查询请另行编写count语句查询. */ protected long countHqlResult(final String hql, final Object. values) Long count = 0L; String fromHql = hql; /select子句与order by子句会影响count查询,进行简单的排除. fromHql = from + StringUtils.substringAfter(fromHql, from); fromHql = Stri

18、ngUtils.substringBefore(fromHql, order by); String countHql = select count(*) + fromHql; try count = findUnique(countHql, values); catch (Exception e) throw new RuntimeException(hql cant be auto count, hql is: + countHql, e); return count; /* * 执行count查询获得本次Hql查询所能获得的对象总数. * * 本函数只能自动处理简单的hql语句,复杂的h

19、ql查询请另行编写count语句查询. */ protected long countHqlResult(final String hql, final Map values) Long count = 0L; 10 String fromHql = hql; /select子句与order by子句会影响count查询,进行简单的排除. fromHql = from + StringUtils.substringAfter(fromHql, from); fromHql = StringUtils.substringBefore(fromHql, order by); String coun

20、tHql = select count(*) + fromHql; try count = findUnique(countHql, values); catch (Exception e) throw new RuntimeException(hql cant be auto count, hql is: + countHql, e); return count; /* count查询获得本次Criteria查询所能获得的对象总数. * 执行*/ SuppressWarnings(unchecked) protected int countCriteriaResult(final Crite

21、ria c) CriteriaImpl impl = (CriteriaImpl) c; / 先把Projection、ResultTransformer、OrderBy取出来,清空三者后再执行Count操作 Projection projection = impl.getProjection(); ResultTransformer transformer = impl.getResultTransformer(); List orderEntries = null; try orderEntries = (List) ReflectionUtils.getFieldValue(impl,

22、orderEntries); ReflectionUtils.setFieldValue(impl, orderEntries, new ArrayList(); 11 catch (Exception e) logger.error(不可能抛出的异常:, e.getMessage(); / 执行Count查询 int totalCount = (Integer) c.setProjection(Projections.rowCount().uniqueResult(); / 将之前的Projection,ResultTransformer和OrderBy条件重新设回去 c.setProjec

23、tion(projection); if (projection = null) c.setResultTransformer(CriteriaSpecification.ROOT_ENTITY); if (transformer != null) c.setResultTransformer(transformer); try ReflectionUtils.setFieldValue(impl, orderEntries, orderEntries); catch (Exception e) logger.error(不可能抛出的异常:, e.getMessage(); return to

24、talCount; / 属性过滤条件查询函数 / /* * 按属性查找对象列表,支持多种匹配方式. * * param matchType 匹配方式,目前支持的取值见PropertyFilter的MatcheType enum. */ public List findBy(final String propertyName, final Object 12 value, final MatchType matchType) Criterion criterion = buildPropertyFilterCriterion(propertyName, value, value.getClass

25、(), matchType); return find(criterion); /* * 按属性过滤条件列表查找对象列表. */ public List find(List filters) Criterion criterions = buildPropertyFilterCriterions(filters); return find(criterions); /* * 按属性过滤条件列表分页查找对象. */ public Page findPage(final Page page, final List filters) Criterion criterions = buildPrope

26、rtyFilterCriterions(filters); return findPage(page, criterions); /* * 按属性条件列表创建Criterion数组,辅助函数. */ protected Criterion buildPropertyFilterCriterions(final List filters) List criterionList = new ArrayList(); for (PropertyFilter filter : filters) 13 if (!filter.isMultiProperty() /只有一个属性需要比较的情况. Crite

27、rion criterion = buildPropertyFilterCriterion(filter.getPropertyName(), filter.getPropertyValue(), filter.getPropertyType(), filter.getMatchType(); criterionList.add(criterion); else /包含多个属性需要比较的情况,进行or处理. Disjunction disjunction = Restrictions.disjunction(); for (String param : filter.getPropertyNa

28、mes() Criterion criterion = buildPropertyFilterCriterion(param, filter.getPropertyValue(), filter.getPropertyType(), filter.getMatchType(); disjunction.add(criterion); criterionList.add(disjunction); Return criterionList.toArray(new CriterioncriterionList.size(); /* * 按属性条件参数创建Criterion,辅助函数. */ protected Criterion buildPropertyFilterCriterion(final String propertyName, final Object propertyValue, final Class propertyType, final MatchType matchType) Assert.hasText(propertyName, propertyName不能为空); Criterion criterion = null; try 14 /按entity property中的类型将字符串转

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1