员工管理系统(三层)

/**
*日期:2016-11-05
*需求:通过对数据库操作,完成管理员的注册和登录,实现简单的对员
*工的增、删、改、查
*表:emp表、admin表
*/

com.bz.entity包

//admin类
public class Admin{
private int adminid;
private String adminname;
private String adminpassword;
public String getAdminname() {
return adminname;
}
public void setAdminname(String adminname) {
this.adminname = adminname;
}
public String getAdminpassword() {
return adminpassword;
}
public void setAdminpassword(String adminpassword) {
this.adminpassword = adminpassword;
}
public int getAdminid() {
return adminid;
}
public void setAdminid(int adminid) {
this.adminid = adminid;
}
//无参的构造函数
public Admin() {
}
有参的构造函数
public Admin(String adminname, String adminpassword) {
this.adminname = adminname;
this.adminpassword = adminpassword;
}
}


//Emp类
public class Emp{
private int empid;
private String empname;
private String emppassword;
private String empsex;
private int empage;
private int empsal;
public int getEmpid() {
return empid;
}
public void setEmpid(int empid) {
this.empid = empid;
}
public String getEmpname() {
return empname;
}
public void setEmpname(String empname) {
this.empname = empname;
}
public String getEmppassword() {
return emppassword;
}
public void setEmppassword(String emppassword) {
this.emppassword = emppassword;
}
public String getEmpsex() {
return empsex;
}
public void setEmpsex(String empsex) {
this.empsex = empsex;
}
public int getEmpage() {
return empage;
}
public void setEmpage(int empage) {
this.empage = empage;
}
public int getEmpsal() {
return empsal;
}
public void setEmpsal(int empsal) {
this.empsal = empsal;
}
//有参的构造函数
public Emp(String empname, String emppassword, String empsex, int empage,
int empsal) {
this.empname = empname;
this.emppassword = emppassword;
this.empsex = empsex;
this.empage = empage;
this.empsal = empsal;
}
//无参的构造函数
public Emp() {}
//有参的构造函数
public Emp(int empid, String empname, String emppassword, String empsex,
int empage, int empsal) {
this.empid = empid;
this.empname = empname;
this.emppassword = emppassword;
this.empsex = empsex;
this.empage = empage;
this.empsal = empsal;
}

}


com.bz.dao包

public interface AdminDao {
public Admin login(String adminname,String adminpassword);
public int register(Admin admin);
}


public interface EmpDao {
public int addEmp(Emp emp);
public int delEmp(int empid);
public int updEmp(Emp emp);
public List checkAllEmp();
public int getCount();
public List checkByPage(int pageIndex,int pageSize);
public int getTotolPage(int count,int pageSize);

}

com.bz.dao.impl包

public class BaseDao {
Connection conn = null;
PreparedStatement ptmt = null;
ResultSet rs = null;
/**
* 加载驱动和创建连接
*
* @return 连接哪个数据库通道对象
*/
protected Connection getConnection() {
try {
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager
.getConnection(“jdbc:mysql://localhost:3306/jsp?characterEncoding=utf-8”,”root”,”abc123”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

/**
 * 增删改业务实现使用JDBC方法
 * 
 * @param sql增删改语句
 * @param params
 *            sql语句的参数(?占位符的具体值)
 * @return 是否更新成功(0失败 大于0成功)
 */
protected int executeUpdate(String sql, Object[] params) {
    int flag = -1;
    conn = this.getConnection();
    try {
        ptmt = conn.prepareStatement(sql);
        if (params != null) {
            for (int i = 0; i < params.length; i++) {
                ptmt.setObject(i + 1, params[i]);
            }
        }
        flag = ptmt.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        this.closeAll();
    }
    return flag;
}

/**
 * 查看业务实现使用JDBC方法
 * 
 * @param sql
 *            查看sql语句
 * @param params
 *            sql语句的参数(?占位符的具体值)
 * @return 查询结果集 注意:此处绝对不能进行关闭操作,因为我结果集里面的数据并没有使用
 */
protected ResultSet executeQuery(String sql, Object[] params) {

    conn = this.getConnection();
    try {
        ptmt = conn.prepareStatement(sql);
        if (params != null) {
            for (int i = 0; i < params.length; i++) {
                ptmt.setObject(i + 1, params[i]);
            }
        }

        rs = ptmt.executeQuery();
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return rs;
}

/**
 * 查询唯一结果集
 * 
 * @param sql
 * @param params
 * @return 查询结果
 */
protected Object executeQueryOne(String sql, Object[] params) {

    Object obj = null;
    conn = this.getConnection();
    try {
        ptmt = conn.prepareStatement(sql);
        if (params != null) {
            for (int i = 0; i < params.length; i++) {
                ptmt.setObject(i + 1, params[i]);
            }
        }
        rs = ptmt.executeQuery();
        if (rs.next()) {
            obj = rs.getObject(1);
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        this.closeAll();
    }
    return obj;
}
/**
 * 关闭JDBC操作 关闭3个对象 先使用的后关闭 进行为空判断 有则关
 */
protected void closeAll() {
    try {
        if (rs != null) {
            rs.close();
        }
        if (ptmt != null) {
            ptmt.close();
        }
        if (conn != null) {
            conn.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

}


public class AdminDaoImpl extends BaseDao implements AdminDao {

public Admin login(String adminname, String adminpassword) {
Admin admin=null;
String sql=”select * from admin where adminname=? and adminpassword=?”;
Object []params=new Object[]{adminname,adminpassword};
super.rs=super.executeQuery(sql, params);
try {
if(super.rs.next()){
admin=new Admin(rs.getString(2),rs.getString(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
super.closeAll();
}
return admin;
}

public int register(Admin admin) {
String sql=”insert into admin(adminname,adminpassword) values(?,?)”;
Object[]params=new Object[]{admin.getAdminname(),admin.getAdminpassword()};
int num=super.executeUpdate(sql, params);
return num;
}
}


public class EmpDaoImpl extends BaseDao implements EmpDao {

public int addEmp(Emp emp) {
String sql=”insert into emp(empname,emppassword,empsex,empage,empsal) values(?,?,?,?,?)”;
Object []params=new Object[]{emp.getEmpName(),emp.getEmpPassword(),emp.getEmpSex(),emp.getEmpAge(),emp.getEmpSal()};
int num=super.executeUpdate(sql, params);
return num;
}

public int delEmp(int empid) {
String sql=”delete from emp where empid=?”;
Object []params=new Object[]{empid};
int num=super.executeUpdate(sql, params);
return num;
}

public int updEmp(Emp emp) {
String sql=”update emp set empname=?,emppassword=?,empsex=?,empage=?,empsal=? where empid=?”;
Object []params=new Object[]{emp.getEmpName(),emp.getEmpPassword(),emp.getEmpSex(),emp.getEmpAge(),emp.getEmpSal(),emp.getEmpID()};
int num=super.executeUpdate(sql, params);
return num;
}

public List checkAllEmp() {
List emps=new ArrayList();
Emp emp=null;
String sql=”select * from emp”;
super.rs=super.executeQuery(sql, null);
try {
while(rs.next()){
emp=new Emp(rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6));
emp.setEmpID(rs.getInt(1));
emps.add(emp);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return emps;
}

public int getCount() {
String sql=”select count(*)from emp”;

return Integer.parseInt((super.executeQueryOne(sql, null)).toString());

}

public List checkByPage(int pageIndex, int pageSize) {
List emps=new ArrayList();
Emp emp=null;
int start=(pageIndex-1)*pageSize;
int end=pageSize;
String sql=”select * from emp limit ?,?”;
Object []params=new Object[]{start,end};
super.rs=super.executeQuery(sql, params);
try {
while(rs.next()){
emp=new Emp(rs.getString(2),rs.getString(3),rs.getString(4),rs.getInt(5),rs.getInt(6));
emp.setEmpID(rs.getInt(1));
emps.add(emp);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return emps;
}

public int getTotolPage(int count, int pageSize) {
int totolPage=(count%pageSize==0)?(count/pageSize):(count/pageSize+1);
return totolPage;
}

}

}

com.bz.biz包

public interface EmpBiz {
public boolean addEmp(Emp emp);
public boolean delEmp(int empid);
public boolean updEmp(Emp emp);
public List checkAllEmp();
public int getCount();
public List checkByPage(int pageIndex,int pageSize);
public int getTotolPage(int count,int pageSize);
}


public interface AdminBiz {
public boolean login(String adminname,String adminpassword);
public boolean register(Admin admin);

}

com.bz.biz.impl包

public class EmpBizImpl implements EmpBiz {
EmpDao empDao=new EmpDaoImpl();
public boolean addEmp(Emp emp) {
if(empDao.addEmp(emp)>0){
return true;
}else{
return false;
}
}

public boolean delEmp(int empid) {
if(empDao.delEmp(empid)>0){
return true;
}else{
return false;
}
}

public boolean updEmp(Emp emp) {
if(empDao.updEmp(emp)>0){
return true;
}else{
return false;
}
}

public List checkAllEmp() {

return empDao.checkAllEmp();
}

public int getCount() {

return empDao.getCount();
}

public List checkByPage(int pageIndex, int pageSize) {
// TODO Auto-generated method stub
return empDao.checkByPage(pageIndex, pageSize);
}

public int getTotolPage(int count, int pageSize) {
// TODO Auto-generated method stub
return empDao.getTotolPage(count, pageSize);
}
}


public class AdminBizImpl implements AdminBiz {
AdminDao adminDao=new AdminDaoImpl();
public boolean login(String adminname, String adminpassword) {
if(adminDao.login(adminname, adminpassword)!=null){
return true;
}else{
return false;
}

}

public boolean register(Admin admin) {
if(adminDao.register(admin)>0){
return true;
}else{
return false;
}
}

}

com.bz.ui包

public class UIManager {
Scanner scan=new Scanner(System.in);
AdminBiz adminBiz=new AdminBizImpl();
EmpBiz empBiz=new EmpBizImpl();
/**
* admin主页面
*/
public void mainAdminMenu() {
System.out.println(“**欢迎来到学生管理系统**”);
System.out.println(“\t1.登陆”);
System.out.println(“\t2.注册”);
System.out.println(“\t3.退出”);

    System.out.println("请选择输入:");
    int input = scan.nextInt();
    switch (input) {
    case 1:
        this.loginMenu();
        break;
    case 2:
        this.registerMenu();
        break;
    case 3:
        System.exit(1);
        break;
    default:
        break;
    }

}

/**
 * admin登录界面
 */
public void loginMenu(){
    System.out.print("请输入用户名:");
    String adminname = scan.next();
    System.out.print("请输入密    码:");
    String adminpassword = scan.next();

    boolean flag = adminBiz.login(adminname, adminpassword);
    if (flag) {
        System.out.println("登陆成功");
        this.secondMenu();
    } else {
        System.out.println("登陆失败");
    }
}

/**
 * admin注册页面
 */
public void registerMenu(){
    System.out.println("请输入用户名:");
    String adminname=scan.next();
    System.out.println("请输入密     码:");
    String adminpassword=scan.next();
    Admin admin=new Admin(adminname,adminpassword);
    boolean flag=adminBiz.register(admin);
    if(flag){
        System.out.println("注册成功");
    }else{
        System.out.println("注册失败");
    }
}


/**
 * 返回上一级菜单
 */
public void returnSecMenu(){
    System.out.println("输入0返回上一级,其他任意键退出系统");
    int num=scan.nextInt();
    switch(num){
    case 0:
        this.secondMenu();
        break;
    default:
        System.exit(1);
        break;
    }
}


/**
 * admin的二级菜单
 */
public void secondMenu() {
    System.out.println("************欢迎来到学生管理系统************");
    System.out.println("\t1.增加员工信息");
    System.out.println("\t2.删除员工信息");
    System.out.println("\t3.修改员工信息");
    System.out.println("\t4.查看员工信息");
    System.out.println("\t5.分页查询信息");
    System.out.print("请选择输入:");
    int input = scan.nextInt();
    switch (input) {
    case 1:
        this.addEmp();
        this.returnSecMenu();
        break;
    case 2:
        this.delEmp();
        this.returnSecMenu();
        break;
    case 3:
        this.updEmp();
        this.returnSecMenu();
        break;
    case 4:
        this.checkAllEmp();
        this.returnSecMenu();
        break;
    case 5:
        this.checkByPage();
        this.returnSecMenu();
        break;
    default:
        System.exit(1);
        break;
    }

}

/**
 * 添加员工信息
 */
public void addEmp(){
    System.out.println("请输入员工姓名:");
    String empname=scan.next();
    System.out.println("请输入员工密码:");
    String emppassword=scan.next();
    System.out.println("请输入员工性别:");
    String empsex=scan.next();
    System.out.println("请输入员工年龄:");
    int empage=scan.nextInt();
    System.out.println("请输入员工工资:");
    int empsal=scan.nextInt();

    Emp emp=new Emp(empname,emppassword,empsex,empage,empsal);
    boolean flag=empBiz.addEmp(emp);

    if(flag){
        System.out.println("添加成功");     
    }else{
        System.out.println("添加失败。");
    }

}

/**
 * 删除员工信息
 */
public void delEmp(){
    System.out.println("请输入要删除的员工ID:");
    int empID=scan.nextInt();

    boolean flag=empBiz.delEmp(empID);

    if(flag){
        System.out.println("删除成功。");
    }else{
        System.out.println("删除失败");
    }

}

/**
 * 修改员工信息
 */
public void updEmp(){
    Emp emp=new Emp();
    System.out.println("请输入要修改的员工ID:");
    int empid=scan.nextInt();
    emp.setEmpID(empid);
    System.out.println("请输入员工姓名:");
    String empname=scan.next();
    emp.setEmpName(empname);
    System.out.println("请输入员工密码:");
    String emppassword=scan.next();
    emp.setEmpPassword(emppassword);
    System.out.println("请输入员工性别:");
    String empsex=scan.next();
    emp.setEmpSex(empsex);
    System.out.println("请输入员工年龄:");
    int empage=scan.nextInt();
    emp.setEmpAge(empage);
    System.out.println("请输入员工工资:");
    int empsal=scan.nextInt();
    emp.setEmpSal(empsal);

    boolean flag=empBiz.updEmp(emp);

    if(flag){
        System.out.println("添加成功");     
    }else{
        System.out.println("添加失败。");
    }

}


/**
 * 查看所有员工信息
 */
public void checkAllEmp(){
    List<Emp> emps = empBiz.checkAllEmp();
    System.out.println("工号\t" + "姓名\t" + "密码\t"+"性别\t"+"年龄\t"+"工资");
    for (Emp emp : emps) {
        System.out.println(emp.getEmpID()+"\t"+emp.getEmpName()+"\t"+emp.getEmpPassword()+"\t"+emp.getEmpSex()+"\t"+emp.getEmpAge()+"\t"+emp.getEmpSal());
    }
}


/**
 * 分页查询员工信息
 */
public void checkByPage(){
    System.out.println("员工总人数:" + empBiz.getCount());
    System.out.print("每页显示个数:");
    int pageSize = scan.nextInt();
    System.out.println("输入您要显示的页码:");
    int pageIndex = scan.nextInt();
    List<Emp> empList = empBiz.checkByPage(pageIndex, pageSize);
    System.out.println("工号\t" + "姓名\t" + "密码\t"+"性别\t"+"年龄\t"+"工资");
    for (Emp emp : empList) {
        System.out.println(emp.getEmpID()+"\t"+emp.getEmpName()+"\t"+emp.getEmpPassword()+"\t"+emp.getEmpSex()+"\t"+emp.getEmpAge()+"\t"+emp.getEmpSal());
    }
    System.out.println("【"+pageIndex+"/"+empBiz.getTotolPage(empBiz.getCount(), pageSize)+"】");
}

}

com.bz.test包

public static void main(String[] args) {
UIManager uim=new UIManager();
uim.mainAdminMenu();

}

以上为简单员工管理系统

分为三层:dao层、biz层、ui层
dao层主要负责发送sql语句,连接数据库,与数据库进行交互。
biz层进行逻辑判断,将dao层的sql语句查询、增删改结构进行处理。
ui层发送参数,将参数交给biz层进行判断。

三层之间联系在一起,又相对分离,有利于系统的维护与修改。

体现了面向对象的思想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值