第五章 驾校员工管理子系统的实现与测试
5.1 项目地址
5.1.1 环境搭建
项目结构实现说明,如图5.1所示:
图 5.1 项目结构图
5.1.2 数据层的实现
本课题数据库采用SQL Server 2008,数据库名称DrivingSchoolStaffManagementDB,登录名:sa,密码:123456。
5.1.3 数据连接层的实现
该系统数据连接层访问数据库采用Hibernate技术[9],示例代码如下,其配置文件详细代码见附录
<hibernate-configuration> <session-factory> <property name="dialect"> org.hibernate.dialect.SQLServerDialect </property> <property name="connection.url"> jdbc:sqlserver://localhost:1433;DatabaseName=DrivingSchoolStaffManagementDB </property> <property name="connection.username">sa</property> <property name="connection.password">123456</property> <property name="connection.driver_class"> com.microsoft.sqlserver.jdbc.SQLServerDriver </property> <property name="myeclipse.connection.profile"> DrivingSchoolStaffManagementDB </property> </session-factory> <hibernate-configuration>
|
5.1.4基于hibernate的数据库连接创建的调用
示例代码:
public interface iHibBaseDAO { public int inser4t(Object obj); public boolean insert(List<Object> list); public boolean delete(Object obj); public boolean update(Object obj); public List select(String hql); public List select(String hql,int startIndex, int length); }
|
5.1.5数据操作层的实现
示例代码如下,详细代码见附录
public class HibBaseDAO implements iHibBaseDAO { Session globesession = null; private static final Log log = LogFactory.getLog(HibBaseDAO.class); public static final int INSERT = 1; //代表添加操作 public static final int UPDATE = 2; //代表修改操作 public static final int DELETE = 3; //代表删除操作 public void close(){ globesession.close(); } @Override |
5.1.6 数据操作层的调用实现
业务层根据业务模块先定义DAO业务接口,再实现DAO以创建IMPL业务实现类[10]。示例代码见附录:
public class AdminUserDAOImpl implements AdminUserDAO { private HibBaseDAO bdao = null;
public void setBdao(HibBaseDAO bdao) { this.bdao = bdao; }
@Override public VAdminUser login(String AdminUserID, String pwd) { String hql = "from VAdminUser where AdminUserid = ? and pwd= ?"; Object[] para = { AdminUserid , pwd }; List list = bdao.select(hql, para); if(list.size() > 0) { return (VAdminUser )list.get(0); } else { return null; } } } |
5.1.7 实体交换层的实现
实体交换层,用于存储数据对象,实体对象一般自动生成为.xml文件[11],放在model层。
示例代码如下,详细代码见附录。
<hibernate-mapping> <class name="model.TAdminUser" table="T_TAdminUser" schema="dbo" catalog="DrivingSchoolStaffManagementDB" dynamic-insert="true"> <id name="AdminUserID" type="java.lang.String"> <column name="AdminUserID" length="50" /> <generator class="assigned"></generator> </id> <property name="AdminUserName" type="java.lang.String"> <column name="AdminUserName" length="50" /> </property> <property name="pwd" type="java.lang.String"> <column name="pwd" length="50"/> </property> </class> </hibernate-mapping> |
对应实体示例代码,详细代码见附录
public class TAdminUser implements java.io.Serializable { // Fields private Integer AdminUserID; private String AdminUserName; private String pwd; // Constructors public Integer getAdminUserID() { return this.AdminUserID; } public String getAdminUserName() { return this.AdminUserName; } public void setAdminUserName(String AdminUserName) { this.AdminUserName = AdminUserName; } public String getPwd() { return this.pwd; }
public void setPwd(String pwd) { this.pwd= pwd; } } |
|
5.1.8系统业务层的实现
系统业务层接口调用model层。示例代码见附录。
public interface AdminUserDAO { public VAdminUser login(Int Adminuserid,String pwd); } } |
5.1.9信息业务层的调用实现
示例代码:
public class DAOFactory { public static AdminUserDAO getAdminUserDAO(){ return new adminuserdaoImpl(); } } } |
5.1.10控制层的实现
示例代码如下,详细代码见附录:
public class LoginAction extends BaseAction { //出啊入的参数需要使用set方法 private TAdminUser Adminuserid; //从login.jsp中传入的学员账号 private String requestin; //项目表传出参数set,直接在jsp种是永久性 private String errorstext; private String backurl; public String getErrorstext() { return errorstext; } public String getBackurl() { return backurl; } public TUser getUser() { return user; } public void setUser(TUser user) { this.user = user; }
|
5.1.11控制层的调用实现
通过ajax异步请求来调用控制层[12],示例代码如下,详细代码见附录。
$.ajax({ type : 'get', url :'../admin/adminuserlogin?adminuserid='+username+'&pwd='+password, });
|
5.1.12表示层的实现
表示层用layui编写,是一个jsp户登录的页面。后台管理端主要采用jQuery。示例代码见如下:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html class="loginHtml"> <head> <link rel="stylesheet" href="../layui/css/layui.css" media="all" /> <link rel="stylesheet" href="../css/login.css" media="all" /> </head> <body class="loginBody"> <form class="layui-form" id="loginForm" method="post" action=""> <div class="login-title">用户登录</div>
<div class="layui-form-item input-item layui-input-active"> <label for="userName">用户名</label> <input type="text" placeholder="登录用户名"id="userid" > </div> <div class="layui-form-item input-item layui-input-active"> <label for="password">密码</label> <input type="password" placeholder="登录密码" id="password"> </div>
<div class="layui-form-item input-item layui-input-active"> <span id="input"></span> </div>
<div class="layui-form-item"> <button type="button" id ="login-button">登录</button> </div> </form> <script type="text/javascript" src="../layui/layui.js"></script> <script type="text/javascript" src="../js/login.js"></script> </body> </html>
|
5.1.13实现结果
驾校员工管理子系统已经实现对员工基本信息、考勤信息、调配信息、绩效信息、薪资信息、部门信息的全
面管理以及管理员登录等功能操作。