jdbc实现人力资源管理系统

我利用oracle中的scott用户里的表来制作简易的人力资源管理系统,练习使用jdbc和编程,希望观看这篇博客的人能有收获。

1、我将用到的jdbc代码连接进行了封装,方便在程序中使用,创建一个util包来封装。
package com.neusoft.hrsystem.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcUtil {
public static Connection getConnection() throws Exception {
// 数据库驱动
Class.forName(“oracle.jdbc.driver.OracleDriver”);
// 连接数据库
Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:” + “@localhost:1521:oracle”, “scott”,
“123456”);
return conn;
}

// 关闭接口,释放资源
public static void close(Connection conn, PreparedStatement ptmt, ResultSet rs) throws SQLException {
    if (conn != null) {
        conn.close();
    }
    if (ptmt != null) {
        ptmt.close();
    }
    if (rs != null) {
        rs.close();
    }
}

}

2、注册登录系统的界面ui,先创建userr表来储存账户的账户名和密码(创建表过程在此省略。。):
package com.neusoft.hrsystem.ui;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;

import javax.imageio.spi.RegisterableService;

import com.neusoft.hrsystem.dao.DeptDao;
import com.neusoft.hrsystem.dao.EmpDao;
import com.neusoft.hrsystem.util.JdbcUtil;

public class TeahUi {

JdbcUtil jd = new JdbcUtil();
Scanner sc = new Scanner(System.in);

// 注册
public void registe() throws Exception {
    System.out.println("注册账号:");
    String s = sc.next();
    System.out.println("注册密码:");
    String s1 = sc.next();
    String sql = "insert into userr(username,pass)  values(?,?)";
    PreparedStatement ptmt = jd.getConnection().prepareStatement(sql);
    ptmt.setString(1, s);
    ptmt.setString(2, s1);
    ptmt.executeUpdate();
    System.out.println("注册成功!!");

}

// 登陆
public void login() throws Exception {
    System.out.println("请输入账号:");
    String s = sc.next();
    System.out.println("请输入密码:");
    String s1 = sc.next();
    String sql = "select * from userr where username=? and pass=?";
    PreparedStatement ptmt = jd.getConnection().prepareStatement(sql);
    ptmt.setString(1, s);
    ptmt.setString(2, s1);
    ResultSet rs = ptmt.executeQuery();
    if (rs.next()) {
        System.out.println("登陆成功!");
        System.out.println("请选择人力资源系统模块:1、员工管理 2、部门管理");
        int a = sc.nextInt();
        if (a == 1) {
            EmpDao e = new EmpDao();
            e.Emp();
        } else if (a == 2) {
            DeptDao d = new DeptDao();
            d.Dept();
        }

    } else {
        System.out.println("密码或账号错误!");
    }

}

}

3、创建vo表下的对象
(1).员工成员Emp.java的属性,进行封装
package com.neusoft.hrsystem.vo;

public class Emp {
private int empno;
private String ename;
private String job;
private int mgr;
private String hiredate;
private double sal;
private double comm;
private int deptno;

public int getEmpno() {
    return empno;
}

public void setEmpno(int empno) {
    this.empno = empno;
}

public String getEname() {
    return ename;
}

public void setEname(String ename) {
    this.ename = ename;
}

public String getJob() {
    return job;
}

public void setJob(String job) {
    this.job = job;
}

public int getMgr() {
    return mgr;
}

public void setMgr(int mgr) {
    this.mgr = mgr;
}

public String getHiredate() {
    return hiredate;
}

public void setHiredate(String hiredate) {
    this.hiredate = hiredate;
}

public double getSal() {
    return sal;
}

public void setSal(double sal) {
    this.sal = sal;
}

public double getComm() {
    return comm;
}

public void setComm(double comm) {
    this.comm = comm;
}

public int getDeptno() {
    return deptno;
}

public void setDeptno(int deptno) {
    this.deptno = deptno;
}

public Emp(int empno, String ename, String job, int mgr, String hiredate, double sal, double comm, int deptno) {
    super();
    this.empno = empno;
    this.ename = ename;
    this.job = job;
    this.mgr = mgr;
    this.hiredate = hiredate;
    this.sal = sal;
    this.comm = comm;
    this.deptno = deptno;
}

public Emp() {
    super();
}

@Override
public String toString() {
    return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", hiredate=" + hiredate
            + ", sal=" + sal + ", comm=" + comm + ", deptno=" + deptno + "]";
}

}
(2).部门属性,进行封装
package com.neusoft.hrsystem.vo;

public class Dept {

private int deptno;
private String dname;
private String loc;

public int getDeptno() {
    return deptno;
}

public void setDeptno(int deptno) {
    this.deptno = deptno;
}

public String getDname() {
    return dname;
}

public void setDname(String dname) {
    this.dname = dname;
}

public String getLoc() {
    return loc;
}

public void setLoc(String loc) {
    this.loc = loc;
}

public Dept(int deptno, String dname, String loc) {
    super();
    this.deptno = deptno;
    this.dname = dname;
    this.loc = loc;
}

public Dept() {
    super();
}

@Override
public String toString() {
    return "Dept [deptno=" + deptno + ", dname=" + dname + ", loc=" + loc + "]";
}

}

4、这是最重要的,也是系统里的主体部分,数据交流dao层,即对数据进行增删改查操作:
(1).EmpDap.java
package com.neusoft.hrsystem.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

import com.neusoft.hrsystem.util.JdbcUtil;
import com.neusoft.hrsystem.vo.Emp;

public class EmpDao {

Emp e = new Emp();
Scanner sc = new Scanner(System.in);

public void Emp() throws SQLException, Exception {
    while (true) {
        System.out.println("请输入选择的操作:1、员工添加 2、员工修改 3、员工删除 4、员工查询");
        int a = sc.nextInt();
        switch (a) {
        case 1:
            insertEmp();
            break;
        case 2:
            updateEmp();
            break;
        case 3:
            deleteEmp();
            break;
        case 4:
            selectEmp();
            break;

        default:
            System.out.println("不存在的操作!!");
            break;
        }
    }
}

public void deleteEmp() throws SQLException, Exception {
    selectEmp();
    System.out.println("请输入删除的员工号:");
    e.setEmpno(sc.nextInt());
    String sql = "delete  from emp where empno=?";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ptmt.setInt(1, e.getEmpno());
    int a=ptmt.executeUpdate();
    if(a!=0){
    System.out.println("删除成功!");}
    else{
        System.out.println("删除失败!");
    }
    selectEmp();
    JdbcUtil.getConnection().close();
    ptmt.close();
}

public void insertEmp() throws SQLException, Exception {
    System.out.println("员工号");
    e.setEmpno(sc.nextInt());
    System.out.println("员工名");
    e.setEname(sc.next());
    System.out.println("职位");
    e.setJob(sc.next());
    System.out.println("经理号");
    e.setMgr(sc.nextInt());
    System.out.println("入职时间");
    e.setHiredate(sc.next());
    System.out.println("工资");
    e.setSal(sc.nextDouble());
    System.out.println("奖金");
    e.setComm(sc.nextDouble());
    System.out.println("部门号");
    e.setDeptno(sc.nextInt());
    String sql = "insert into emp values(?,?,?,?,?,?,?,?) ";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ptmt.setInt(1, e.getEmpno());
    ptmt.setString(2, e.getEname());
    ptmt.setString(3, e.getJob());
    ptmt.setInt(4, e.getMgr());
    ptmt.setString(5, e.getHiredate());
    ptmt.setDouble(6, e.getSal());
    ptmt.setDouble(7, e.getComm());
    ptmt.setInt(8, e.getDeptno());
    int a=ptmt.executeUpdate();
    if(a!=0){
    System.out.println("添加成功!!");}
    else{
        System.out.println("添加失败!");
    }
    selectEmp();
    JdbcUtil.getConnection().close();
    ptmt.close();
}

public void updateEmp() throws SQLException, Exception {
    selectEmp();
    System.out.println("请输入修改的员工号:");
    int s = sc.nextInt();
    String sql = "update Emp set Ename = ? ,Job=? ,Mgr=?,Hiredate=?,Sal=?,Comm=?,Deptno=? where Empno = ?";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ResultSet rs = ptmt.executeQuery();
        ptmt.setInt(8,s);
        System.out.println("修改员工名:");
        ptmt.setString(1, sc.next());
        System.out.println("修改职位:");
        ptmt.setString(2, sc.next());
        System.out.println("修改经理号:");
        ptmt.setInt(3, sc.nextInt());
        System.out.println("修改入职时间:");
        ptmt.setString(4, sc.next());
        System.out.println("修改工资:");
        ptmt.setDouble(5, sc.nextDouble());
        System.out.println("修改奖金:");
        ptmt.setDouble(6,sc.nextDouble());
        System.out.println("修改部门号:");
        ptmt.setInt(7,sc.nextInt());
        int a=ptmt.executeUpdate();
        if(a!=0){
        System.out.println("修改成功!");}
        else{
            System.out.println("修改失败");
        }
        selectEmp();

    JdbcUtil.close(JdbcUtil.getConnection(), ptmt, rs);

}

public void selectEmp() throws SQLException, Exception {
    String sql = "select * from emp";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ResultSet rs = ptmt.executeQuery();
    while (rs.next()) {
        System.out.println("员工号:" + rs.getString(1) + " 员工名:" + rs.getString(2) + " 职位:" + rs.getString(3) + " 经理号:"
                + rs.getString(4) + " 入职时间:" + rs.getString(5) + " 工资:" + rs.getString(6) + " 奖金:" + rs.getString(7)
                + " 部门号:" + rs.getString(8));
    }
    System.out.println();
    JdbcUtil.close(JdbcUtil.getConnection(), ptmt, rs);

}

}

(2)DeptDao.java
package com.neusoft.hrsystem.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

import com.neusoft.hrsystem.util.JdbcUtil;

import com.neusoft.hrsystem.vo.Dept;

public class DeptDao {
Dept d = new Dept();
Scanner sc = new Scanner(System.in);

public void Dept() throws SQLException, Exception {
    while (true) {
        System.out.println("请输入选择的操作:1、部门添加 2、部门修改 3、部门删除 4、部门查询");
        int a = sc.nextInt();
        switch (a) {
        case 1:
            insertDept();
            break;
        case 2:
            updateDept();
            break;
        case 3:
            deleteDept();
            break;
        case 4:
            selectDept();
            break;

        default:
            System.out.println("不存在的操作!!");
            break;
        }
    }
}

public void deleteDept() throws SQLException, Exception {
    selectDept();
    System.out.println("请输入删除的部门号:");
    d.setDeptno(sc.nextInt());
    String sql = "delete  from dept where deptno=?";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ptmt.setInt(1, d.getDeptno());
    int a =ptmt.executeUpdate();
    if(a!=0){
    System.out.println("删除成功!");}
    else{
        System.out.println("删除失败");
    }
    selectDept();
    JdbcUtil.getConnection().close();
    ptmt.close();
}

public void insertDept() throws SQLException, Exception {
    System.out.println("部门号:");
    d.setDeptno(sc.nextInt());
    System.out.println("部门名:");
    d.setDname(sc.next());
    System.out.println("出生地:");
    d.setLoc(sc.next());
    String sql = "insert into dept values(?,?,?) ";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ptmt.setInt(1, d.getDeptno());
    ptmt.setString(2, d.getDname());
    ptmt.setString(3, d.getLoc());
    int a=ptmt.executeUpdate();
    if(a!=0){
    System.out.println("添加成功!");}
    else{
        System.out.println("添加失败!");
    }
    JdbcUtil.getConnection().close();
    ptmt.close();
}

public void updateDept() throws SQLException, Exception {
    selectDept();
    System.out.println("请输入部门号:");
    int a =sc.nextInt();
    System.out.println("修改部门名");
    d.setDname(sc.next());
    System.out.println("修改出生地");
    d.setLoc(sc.next());
    String sql = "update Dept set dname =?,loc =? where deptno=?";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ptmt.setString(1,d.getDname());
    ptmt.setString(2,d.getLoc());
    ptmt.setInt(3,a);
     int b=ptmt.executeUpdate();
    if(b!=0){
    System.out.println("修改成功!");}
    else{
        System.out.println("修改失败!");
    }
    selectDept();
    JdbcUtil.getConnection().close();
    ptmt.close();

}

public void selectDept() throws SQLException, Exception {
    String sql = "select * from dept";
    PreparedStatement ptmt = JdbcUtil.getConnection().prepareStatement(sql);
    ResultSet rs = ptmt.executeQuery();
    while (rs.next()) {
        System.out.println("部门号:" + rs.getInt(1) + " 部门名:" + rs.getString(2) + " 出生地:" + rs.getString(3));
    }
    System.out.println();
    JdbcUtil.close(JdbcUtil.getConnection(), ptmt, rs);

}

}

5、最后测试类:
package com.neusoft.hrsystem.test;

import java.util.Scanner;

import com.neusoft.hrsystem.ui.TeahUi;

public class Test {

public static void main(String[] args) throws Exception {

    TeahUi t = new TeahUi();
    Scanner sc = new Scanner(System.in);
    System.out.println("请选择操作:1、注册账户 2、登陆账户");
    int a = sc.nextInt();
    if (a == 1) {
        t.registe();
    } else if (a == 2) {
        t.login();
    }

}

}

这算对知识的小概括吧,巩固巩固。。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值