人力资源管理系统毕业论文设计范文(JSP)(6)
资料介绍:
public String getYhm() {
return yhm;
}
public void setYhm(String yhm) {
this.yhm = yhm;
}
public String getJsbh() {
return jsbh;
}
public void setJsbh(String jsbh) {
this.jsbh = jsbh;
}
}
(3)通过DAO操作数据库。
DAO是一个对DTO持久化类操作的接口,其中定义了query(String pk)方法、update(DTO dto)方法、add(DTO dto)方法、delete(String pk)方法、List<DTO> queryAll()方法。其中DAO中有数据库链接的Connection 、分页(Pagination)属性。
query(String pk)方法:查询数据库中PK用户信息;
update(DTO dto)方法:更新数据库中域对象的状态;
add(DTO dto)方法:增加数据库中域对象的状态;
delete(String pk)方法:删除数据库域对象的状态;
List<DTO> queryAll()方法:查询数据库中所有的域对象状态;
系统中都是运用DAO实现的数据库操作,在这以权限管理模块为例:
query(String pk)方法代码如下:
[来源:http://Doc163.com]
public DTO query(String pk) {
Hr_jsbDTO jsDTO = null;
try {
PreparedStatement pstmt = conn.prepareStatement(SQL_SELECT);
pstmt.setString(1, pk);
ResultSet rs = pstmt.executeQuery();
if (rs != null && rs.next()) {
jsDTO = new Hr_jsbDTO();
jsDTO.setJsbh(rs.getString("jsbh"));
jsDTO.setJsm(rs.getString("jsm"));
jsDTO.setJsms(rs.getString("jsms"));
}
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return jsDTO;
}
update(DTO dto)方法代码如下:
public int update(DTO dto) {
Hr_jsbDTO jsDTO = (Hr_jsbDTO) dto; [资料来源:www.doc163.com]
int flag = 0;
try {
PreparedStatement pstmt = conn.prepareStatement(SQL_UPDATE);
pstmt.setString(1, jsDTO.getJsm());
pstmt.setString(2, jsDTO.getJsms());
pstmt.setString(3, jsDTO.getJsbh());
flag = pstmt.executeUpdate();
pstmt.close();
} catch (SQLException e) {
flag = 0;
e.printStackTrace();
}
return flag;
}
}
add(DTO dto)方法代码如下:
public int add(DTO dto) {
Hr_jsbDTO jsDTO = (Hr_jsbDTO) dto;
int flag;
try {
PreparedStatement pstmt = conn.prepareStatement(SQL_ADD);
pstmt.setString(1, jsDTO.getJsbh());
pstmt.setString(2, jsDTO.getJsm());
pstmt.setString(3, jsDTO.getJsms()); [资料来源:https://www.doc163.com]
flag = pstmt.executeUpdate();
pstmt.close();
} catch (SQLException e) {
flag = 0;
e.printStackTrace();
}
return flag;
}
delete(String pk)方法代码如下:
public int delete(String pk) {
int flag = 0;
try {
PreparedStatement pstmt = conn.prepareStatement(SQL_DELETE);
pstmt.setString(1, pk);
flag = pstmt.executeUpdate();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
List<DTO> queryAll()方法部分代码如下:
public List<DTO> queryAll() {
List<DTO> yhList = new ArrayList<DTO>();
PreparedStatement pstmt = conn.prepareStatement(SQL_SELECT_ALL,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); [资料来源:http://www.doc163.com]
ResultSet rs = pstmt.executeQuery();
this.setStartRow(rs);
while (rs != null && rs.next()) {
if(this.isPagination&&rs.getRow()>pagination.getEndRow())break;
Hr_jsbDTO jsDTO = new Hr_jsbDTO();
jsDTO.setJsbh(rs.getString("jsbh"));
jsDTO.setJsm(rs.getString("jsm"));
jsDTO.setJsms(rs.getString("jsms"));
yhList.add(jsDTO);
}
rs.close();
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
return yhList;
}
6.4控制层的实现
控制层负责接收用户请求、更新模型,以及选择合适的视图组件返回给用户,在本系统的实现中控制层是实现对一个抽象类Action的继承来实现,通过继承Action中的execute(HttpServletRequest request, HttpServletResponse response)的方法,另外还有一个ActionServlet类继承了HttpServlet并对action-config.xml文件进行加载并解析。Action负责处理一项具体的业务,它是用户请求和业务逻辑之间的桥梁,每个Action充当客户的一项业务代理。Action的主要功能是接收页面中的一些数据,然后根据action-config.xml实例包含的映射信息决定将当前的请求转发给哪个Action。Action的工作就是通过访问HTTP会话、HTTP请求和表单参数等调用业务逻辑,最后把响应映射到以持久化类形式存在的模型上,来完成特定的功能。最后,Action返回的结果会通过配置文件映射到JsP页面上,JSP会渲染视图并显示给用户,以下是Action类部分代码:
[资料来源:https://www.doc163.com]
public abstract class Action {
protected final String SUCCESS="success";
protected final String FAILURE="failure";
protected ActionMessage message=new ActionMessage();
protected Connection con;
public String process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("message", message);
return execute(request, response);
}
public void setConn(Connection conn){
this.conn=conn;
}
6.5系统WEB层实现
本系统的WEB层的实现主要是jsp技术结合JSTL标签来实现。Jsp技术主要是用于显示用户界面,发送Action请求和接收响应完成交互,做到了视图与业务逻辑层的解耦。JSTL标签库为表示层提供了大量丰富的标签库,有利于JSP项目迁移到别的项目中、扩展页面功能和易于维护的优势。本系统每个显示页面都是由两部分组成:头页面,主页面。头页面做成了一个jsp文件,在每一个显示页面中只要将这两个文件include进来就可以。这样使得系统页面的整体风格一致,同时也避免了代码重复编写,程序员只需为每个页面实现其中间的主体部分。本系统除index.jsp页面外所有的显示页面都由action转发过来,在action中将页面所需要的数据封装成对象,jsp页面直接从容器中获取数据,通过这种数据传递方式避免了在页面写入java代码,从而使得显示层和逻辑层耦合性大大降低。 [资料来源:www.doc163.com]
6.6系统部署
本系统的系统部署如6-12图:
图6-1系统部署图
5.7系统界面介绍
登陆页面如图6-2,为本系统的入口,用户输入正确的用户名和密码才能进入系统主页:
图6-2登陆页面
系统主页页面如图6-3:系统主页主要是系统的功能结构,相应的权限用户可以双击进入相应的模块进行操作,中间左部分系统默认显示的是招聘管理内容。
图6-3系统主页 [资料来源:Doc163.com]
人事管理页面如图6-4:
图6-4人事管理页面
考勤管理页面如图6-5:
图6-5考勤管理页面
系统设置管理页面图6-6:
图6-6系统设置页面
[资料来源:http://www.doc163.com]
[版权所有:http://DOC163.com]
第7章 总结
本系统的设计实现基本上满足了用户需求,性能需求,比较容易维护;开发框架松散耦合度高、可扩展且高效;代码重用性较高,利于调试和测试。
对本系统的开发大致总结如下:
1.人力资源管理系统用MVC框架扩展开发,使得层次之间达到一定的松散耦合。在开发过程中各个层与层之间的工作是相对独立的,不同的业务逻辑可以基于模块开发,有利于团队协同开发。业务规则、输入校验存在于中间控制层,因此当业务规则发生改变或增加时,只需要更改或增加相应业务处理逻辑,在很短的时间内就能完成系统开发和部署,而客户端应用程序不需要做任何逻辑处理,能很好的满足了各个部门快速多变的业务需求,从而拥有了很好的可扩展性和可维护性。