🍅文末获取源码联系🍅
👇🏻 精彩项目推荐订阅👇🏻 不然下次找不到哟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
系统介绍
随着高校教育体制的改革大学生人数的不断增加,毕业生就业制度发生了根本的变化。单位和学生走向人才市场,双向选择,择优录用。因此在这样的情况下,在INTERNET上开发并运行信息管理系统就能够极大地提高工作效率,弥补了用人单位和学生在时间和空间上的不足。
本毕业设计的内容是设计并且实现一个基于web技术的毕业生就业信息管理系统,故而系统主要以j2EE作为开发基础,主要使用了struts2+spring+hibernate等多种框架的结合使用,用myeclipse作为开发工具,以MYSQL作为数据库,使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。
系统开发的思想与技术
JSP技术与MVC模式以及系统的基本框架
本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。
S.S.H框架的优点
S.S.H框架是J2EE应用中struts2+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,它由以下3个框架构成:
Struts2框架
Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。其基本构成如图2.1所示。
Spring框架
Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(Inversion of Control)容器、非侵入性(No intrusive)的框架,并提供AOP(Aspect-oriented programming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装,是一个全方位的应用程序框架(Application framework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。
Spring框架由图2-2所示的7个部分组成:
Hibernate框架
Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。
系统总体设计
总体功能模块
本系统分系统管理员,老师用户,企业用户和毕业生用户4个用户角色。
系统管理员功能模块
系统管理员主要功能有系别管理、专业管理、老师管理员管理、站内新闻管理、企业用户管理、岗位管理、文档管理、公告管理、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。
老师用户功能模块
老师用户的主要功能有毕业生用户管理、站内新闻查询、文档查询、公告查询、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。
企业用户功能模块
企业用户的主要功能有求职管理(包括岗位管理和查看应聘学生信息)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。
毕业生用户功能模块
毕业生用户的主要功能有简历管理、求职管理(包括查询就业岗位和查看应聘信息,查看招聘单位)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。
系统业务描述
本系统分系统管理员,老师用户,企业用户和毕业生用户4个用户角色。系统管理员主要功能有系别管理、专业管理、老师管理员管理、站内新闻管理、企业用户管理、岗位管理、文档管理、公告管理、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。老师用户的主要功能有毕业生用户管理、站内新闻查询、文档查询、公告查询、留言管理、就业查询统计(包括就业情况查询,区域分布统计,性别分布统计,时间分布统计,从事行业统计,工作省份统计,就业月份统计)。企业用户的主要功能有求职管理(包括岗位管理和查看应聘学生信息)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。毕业生用户的主要功能有简历管理、求职管理(包括查询就业岗位和查看应聘信息,查看招聘单位)、站内新闻查询、文档查询、公告查询、留言管理、个人信息管理。
系统详细设计与实现
系统和数据库的配置
系统按通用的B/S(浏览器、服务器)模式进行设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
概念模型设计
概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本系统E-R图如下:
系统配置代码展示
hibernate配置文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory><!-- Database connection settings --><property name="proxool.pool_alias">DBPool</property><property name="proxool.xml">proxool.xml</property><property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property><!-- Echo all executed SQL to stdout --><property name="show_sql">true</property><property name="format_sql">true</property><property name="dialect">org.hibernate.dialect.MySQLDialect</property><!-- Enable Hibernate's automatic session context management --><property name="current_session_context_class">thread</property><property name="hibernate.hbm2ddl.auto">update</property><mapping class="model.User"/><mapping class="model.Xinwen"/><mapping class="model.Zhiwei"/><mapping class="model.Jianli"/><mapping class="model.Toudijilu"/><mapping class="model.Wendang"/><mapping class="model.Gonggao"/><mapping class="model.Liuyan"/><mapping class="model.Jiuye"/><mapping class="model.Xi"/><mapping class="model.Zhuanye"/></session-factory>
</hibernate-configuration>
struts配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts><constant name="struts.objectFactory" value="spring" /><constant name="struts.i18n.encoding" value="UTF-8" /><package name="index" namespace="/" extends="struts-default"><action name="index" method="index" class="manageAction" ><result name="success1">index.jsp</result><result name="success2">login.jsp</result></action><action name="method" class="manageAction"><result type="dispatcher">${url}</result><result name="redirect" type="redirect">${url}</result></action></package></struts>
Spring配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><!-- daos --><bean id="userDao" class="dao.impl.UserDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="xinwenDao" class="dao.impl.XinwenDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="zhiweiDao" class="dao.impl.ZhiweiDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="jianliDao" class="dao.impl.JianliDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="toudijiluDao" class="dao.impl.ToudijiluDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="wendangDao" class="dao.impl.WendangDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="gonggaoDao" class="dao.impl.GonggaoDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="liuyanDao" class="dao.impl.LiuyanDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="jiuyeDao" class="dao.impl.JiuyeDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="xiDao" class="dao.impl.XiDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean><bean id="zhuanyeDao" class="dao.impl.ZhuanyeDaoImpl" ><property name="sessionFactory"><ref bean="sessionFactory" /></property></bean></beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><bean id="manageAction" class="action.ManageAction" scope="prototype"><property name="userDao"><ref bean="userDao" /></property><property name="xinwenDao"><ref bean="xinwenDao" /></property><property name="zhiweiDao"><ref bean="zhiweiDao" /></property><property name="jianliDao"><ref bean="jianliDao" /></property><property name="toudijiluDao"><ref bean="toudijiluDao" /></property><property name="wendangDao"><ref bean="wendangDao" /></property><property name="gonggaoDao"><ref bean="gonggaoDao" /></property><property name="liuyanDao"><ref bean="liuyanDao" /></property><property name="jiuyeDao"><ref bean="jiuyeDao" /></property><property name="xiDao"><ref bean="xiDao" /></property><property name="zhuanyeDao"><ref bean="zhuanyeDao" /></property></bean></beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><!-- 配置sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="configLocation"><value>classpath:hibernate.cfg.xml</value></property> </bean> <!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory"><ref bean="sessionFactory"/></property> </bean><!-- 配置事务的传播特性 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="*" read-only="true"/></tx:attributes></tx:advice><!-- 那些类的哪些方法参与事务 --><aop:config><aop:pointcut id="allManagerMethod" expression="execution(* dao.*.*(..))"/><aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/></aop:config></beans>
系统功能实现的主要模块
登录页面
public String login()throws IOException{HttpServletRequest request=ServletActionContext.getRequest();String username=request.getParameter("username");String password=request.getParameter("password");String role=request.getParameter("role");User user=userDao.selectBean("where username='"+username+"'and password='"+password+"'and userlock=0 and role="+role);if(user!=null){HttpSession session=request.getSession();session.setAttribute("user",user);this.setUrl("index");return"redirect";}else{HttpServletResponse response=ServletActionContext.getResponse();response.setCharacterEncoding("gbk");responsegetWriter()print(
"<script language=javascript>alert('用户名或者密码错误');window.location.href='login.jsp';</script>");}return null;}
本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码还有用户的登陆角色,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。
注册页面
//企业用户注册操作public void register()throws Exception{HttpServletRequest request=ServletActionContext.getRequest(); HttpServletResponse response=ServletActionContext.getResponse(); String username=java.net.URLDecoder.decode(request.getParameter("username"),"utf-8");User user=userDao.selectBean("where username='"+username+"'and userlock=0");if(user==null){user=new User();user.setUsername(username);user.setPassword(request.getParameter("password"));user.setTruename(java.net.URLDecoder.decode(request.getParameter("truename"),"utf-8"));user.setQiyedizhi(java.net.URLDecoder.decode(request.getParameter("qiyedizhi"),"utf-8")); user.setQiyelianxidianhua(java.net.URLDecoder.decode(request.getParameter("qiyelianxidianhua"),"utf-8"));
user.setQiyemingchen(java.net.URLDecoder.decode(request.getParameter("qiyemingchen"),"utf-8")); user.setFarendaibiao(java.net.URLDecoder.decode(request.getParameter("farendaibiao"),"utf-8")); user.setCongshihangye(java.net.URLDecoder.decode(request.getParameter("congshihangye"),"utf-8")); user.setQiyequyu(java.net.URLDecoder.decode(request.getParameter("qiyequyu"),"utf-8"));user.setCreatetime(new Date());user.setRole(1);userDao.insertBean(user); response.setCharacterEncoding("utf-8");response.getWriter().write("注册新用户成功!您的用户名"+user.getUsername()+",请妥善保管!");}else{response.setCharacterEncoding("utf-8");response.getWriter().write("该用户名已经存在,请重新注册!");}}
本段代码是程序的注册代码,首先从获取从页面获取注册的信息,同时新建一个User对象,把从页面获取的信息都写在USER对象里面。同时在插入到数据库之前先调用userDao.selectBean("where username='"+username+"'and userlock=0");方法,验证下该用户名在数据库中是否存在,如果不存在,则调用userDao.insertBean(bean);方法,把该条记录写入数据库,如果该条记录存在,则返回到注册页面,同时提醒用户该用户已经注册,请不要重复注册。
系统管理员主页面
//程序入口界面public String index(){HttpServletRequest request=ServletActionContext.getRequest();HttpSession session=request.getSession();User user=(User)session.getAttribute("user");if(user==null){return"success2";}else{return"success1";}}
本段代码是主页面代码,判断用户的session的值是否为空,为空则跳转到登陆界面,不为空则根据session的值的不同跳转到不同的主页。
教师用户管理主页面
//老师管理员列表public String userlist(){HttpServletRequest request=ServletActionContext.getRequest();String username=request.getParameter("username");String truename=request.getParameter("truename");StringBuffer sb=new StringBuffer();sb.append("where");if(username!=null&&!"".equals(username)){sb.append("username like'%"+username+"%'");sb.append("and");request.setAttribute("username",username);}if(truename!=null&&!"".equals(truename)){sb.append("truename like'%"+truename+"%'");sb.append("and");request.setAttribute("truename",truename);} sb.append("userlock=0 and role=3 order by id desc");String where=sb.toString();int currentpage=1;int pagesize=10;if(request.getParameter("pagenum")!=null){currentpage=Integer.parseInt(request.getParameter("pagenum"));}int total=userDao.selectBeanCount(where);request.setAttribute("list",userDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,currentpage,"method!userlist","共有"+total+"条记录"));request.setAttribute("url","method!userlist");request.setAttribute("url2","method!user");request.setAttribute("title","老师管理员管理");this.setUrl("user/userlist.jsp");return SUCCESS;}
首先通过String username=request.getParameter("username")和Stringtruename=request.getParameter("truename");这句代码从页面获取查询的选项,然后通过if(username!=null&&!"".equals(username))和if(truename!=null&&!"".equals(truename))语句,通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过userDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("user/userlist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该老师用户列表页面定义了对老师信息的增加,修改,删除等操作。
就业情况查询管理主页面
//就业情况查询public String jiuyelist(){HttpServletRequest request=ServletActionContext.getRequest();String truename=request.getParameter("truename");String jiuyefenbu=request.getParameter("jiuyefenbu");String xingbie=request.getParameter("xingbie");String congshihangye=request.getParameter("congshihangye");String zhuanye=request.getParameter("zhuanye");StringBuffer sb=new StringBuffer();sb.append("where");StringBuffer sb2=new StringBuffer();sb2.append("where");if(truename!=null&&!"".equals(truename)){sb.append("user.truename like'%"+truename+"%'");sb.append("and");sb2.append("user.truename like'%"+truename+"%'");sb2.append("and");request.setAttribute("truename",truename);}if(jiuyefenbu!=null&&!"".equals(jiuyefenbu)){sb.append("jiuyefenbu like'%"+jiuyefenbu+"%'");sb.append("and");sb2.append("jiuyefenbu like'%"+jiuyefenbu+"%'");sb2.append("and");request.setAttribute("jiuyefenbu",jiuyefenbu);}if(xingbie!=null&&!"".equals(xingbie)){sb.append("xingbie like'%"+xingbie+"%'");sb.append("and");sb2.append("xingbie like'%"+xingbie+"%'");sb2.append("and");request.setAttribute("xingbie",xingbie);}if(congshihangye!=null&&!"".equals(congshihangye)){sb.append("congshihangye like'%"+congshihangye+"%'");sb.append("and");sb2.append("congshihangye like'%"+congshihangye+"%'");sb2.append("and");request.setAttribute("congshihangye",congshihangye);} if(zhuanye!=null&&!"".equals(zhuanye)){sb.append("user.zhuanye like'%"+zhuanye+"%'");sb.append("and");sb2.append("user.zhuanye like'%"+zhuanye+"%'");sb2.append("and");request.setAttribute("zhuanye",zhuanye);}HttpSession session=request.getSession();User user=(User)session.getAttribute("user");if("admin".equals(user.getUsername())){sb.append("1=1 order by id desc");sb2.append("1=1");}else{sb.append("laoshi.id="+user.getId()+"order by id desc");sb2.append("laoshi.id="+user.getId());} String where=sb.toString(); String where2=sb2.toString(); int currentpage=1;int pagesize=10;if(request.getParameter("pagenum")!=null){currentpage=Integer.parseInt(request.getParameter("pagenum"));}int total=jiuyeDao.selectBeanCount(where2);request.setAttribute("list",jiuyeDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,currentpage,"method!jiuyelist","共有"+total+"条记录"));request.setAttribute("url","method!jiuyelist");this.setUrl("jiuye/jiuyelist.jsp");return SUCCESS;}
首先通过以下语句:
String truename=request.getParameter("truename");
String jiuyefenbu=request.getParameter("jiuyefenbu");
String xingbie=request.getParameter("xingbie");
String congshihangye=request.getParameter("congshihangye");
String zhuanye=request.getParameter("zhuanye");
这些代码从页面获取查询的选项,然后通过
if(truename!=null&&!"".equals(truename)){
if(jiuyefenbu!=null&&!"".equals(jiuyefenbu)){
if(xingbie!=null&&!"".equals(xingbie)){
if(congshihangye!=null&&!"".equals(congshihangye)){
if(zhuanye!=null&&!"".equals(zhuanye)){
通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过jiuyeDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("jiuye/jiuyelist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该就业信息列表了对就业的打印,导出excel等操作。
区域分布统计主页面
//统计列表(区域分布统计)public String jiuyelist4()throws IOException{HttpServletRequest request=ServletActionContext.getRequest();request.setAttribute("xilist",xiDao.selectBeanList(0,999,"where xilock=0")); String banji=request.getParameter("banji");String xi=request.getParameter("xi");String zhuanye=request.getParameter("zhuanye");String nianji=request.getParameter("nianji");StringBuffer sb=new StringBuffer();sb.append("where");StringBuffer sb2=new StringBuffer();sb2.append("where");if(banji!=null&&!"".equals(banji)){sb.append("user.banji like'%"+banji+"%'");sb.append("and");sb2.append("user.banji like'%"+banji+"%'");sb2.append("and");request.setAttribute("banji",banji);} if(xi!=null&&!"0".equals(xi)){Xi x=xiDao.selectBean("where id="+xi);sb.append("user.xi like'%"+x.getName()+"%'");sb.append("and");sb2.append("user.xi like'%"+x.getName()+"%'");sb2.append("and");request.setAttribute("xi",x.getName());}if(zhuanye!=null&&!"0".equals(zhuanye)){Zhuanye z=zhuanyeDao.selectBean("where id="+zhuanye);sb.append("user.zhuanye like'%"+z.getName()+"%'");sb.append("and");sb2.append("user.zhuanye like'%"+z.getName()+"%'");sb2.append("and");request.setAttribute("zhuanye",z.getName());} if(nianji!=null&&!"".equals(nianji)){sb.append("user.nianji like'%"+nianji+"%'");sb.append("and");sb2.append("user.nianji like'%"+nianji+"%'");sb2.append("and");request.setAttribute("nianji",nianji);}HttpSession session=request.getSession();User user=(User)session.getAttribute("user");if("admin".equals(user.getUsername())){sb.append("jiuyefenbu='南方'");sb2.append("jiuyefenbu='北方'"); }else{sb.append("jiuyefenbu='南方'and laoshi.id="+user.getId());sb2.append("jiuyefenbu='北方'and laoshi.id="+user.getId());} int count1=jiuyeDao.selectBeanCount(sb.toString());int count2=jiuyeDao.selectBeanCount(sb2.toString()); int count3=count1+count2; DefaultCategoryDataset dataset=new DefaultCategoryDataset();dataset.addValue(((double)count1/count3)*100,"南方就业","南方就业"+count1+"人");dataset.addValue(((double)count2/count3)*100,"北方就业","北方就业"+count2+"人");JFreeChart chart=ChartFactory.createBarChart3D(null,"区域分布","百分比(%)",dataset,PlotOrientation.VERTICAL,true,false,false); //柱状图(CategoryPlot):CategoryPlot plot=chart.getCategoryPlot();//获取图表区域对象CategoryAxis domainAxis=plot.getDomainAxis();//水平底部列表domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));//水平底部标题domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));//垂直标题ValueAxis rangeAxis=plot.getRangeAxis();//获取柱状rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,15)); String s=new Date().getTime()+"";request.setAttribute("time",s); String savaPath=ServletActionContext.getServletContext().getRealPath("/")+"/uploadfiles/"+s+".png"; ChartUtilities.saveChartAsPNG(new File(savaPath),chart,600,400);this.setUrl("jiuye/jiuyelist4.jsp");return SUCCESS;}
统计的图标表示主要通过jfreechart组件来完成的。首先通过以下方法:
String banji=request.getParameter("banji");
String xi=request.getParameter("xi");
String zhuanye=request.getParameter("zhuanye");
String nianji=request.getParameter("nianji");
这句代码从页面获取查询的选项,,然后通过:
if(banji!=null&&!"".equals(banji)){
if(xi!=null&&!"".equals(xi)){
if(zhuanye!=null&&!"".equals(zhuanye)){
if(nianji!=null&&!"".equals(nianji)){
通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过jiuyeDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在把取出来得数据库通过jfreechart组件生成对应的图片,通过this.setUrl("jiuye/jiuyelist4.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据统计功能的实现。
岗位管理主页面
//岗位列表public String zhiweilist(){HttpServletRequest request=ServletActionContext.getRequest();String zhiweimingchen=request.getParameter("zhiweimingchen");String zhiweileibie=request.getParameter("zhiweileibie");StringBuffer sb=new StringBuffer();sb.append("where");StringBuffer sb2=new StringBuffer();sb2.append("where");if(zhiweimingchen!=null&&!"".equals(zhiweimingchen)){sb.append("zhiweimingchen like'%"+zhiweimingchen+"%'");sb.append("and");sb2.append("zhiweimingchen like'%"+zhiweimingchen+"%'");sb2.append("and");request.setAttribute("zhiweimingchen",zhiweimingchen);} if(zhiweileibie!=null&&!"".equals(zhiweileibie)){sb.append("zhiweileibie like'%"+zhiweileibie+"%'");sb.append("and");sb2.append("zhiweileibie like'%"+zhiweileibie+"%'");sb2.append("and");request.setAttribute("zhiweileibie",zhiweileibie);}HttpSession session=request.getSession();User user=(User)session.getAttribute("user"); sb.append("zhiweilock=0 and zhiweifaburen.id="+user.getId()+"order by id desc");String where=sb.toString();sb2.append("zhiweilock=0 and zhiweifaburen.id="+user.getId());String where2=sb2.toString(); int currentpage=1;int pagesize=10;if(request.getParameter("pagenum")!=null){currentpage=Integer.parseInt(request.getParameter("pagenum"));}int total=zhiweiDao.selectBeanCount(where2);request.setAttribute("list",zhiweiDao.selectBeanList((currentpage-1)*pagesize,pagesize,where));request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize,currentpage,"method!zhiweilist","共有"+total+"条记录"));request.setAttribute("url","method!zhiweilist");request.setAttribute("url2","method!zhiwei"); this.setUrl("zhiwei/zhiweilist.jsp");return SUCCESS;}
首先通过String zhiweimingchen=request.getParameter("zhiweimingchen")和String zhiweileibie=request.getParameter("zhiweileibie");这句代码从页面获取查询的选项,再用if(zhiweimingchen!=null&&!"".equals(zhiweimingchen))if(zhiweileibie!=null&&!"".equals(zhiweileibie)),通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过zhiweiDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("zhiwei/zhiweilist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该岗位列表页面定义了对岗位信息的增加,修改,删除等操作。
总结
毕业生就业问题是大学毕业生至关重要的问题,每个合格的大学毕业生都都将就业途径视为命脉,而“毕业生就业信息管理系统”正是提供这种途径的最佳方式之一,具有极度的应用价值与实用性。
源码获取
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
关注公众号《编程乐学》,后台回复:24012721 自动回复