用JAVA写个简单的员工信息系统吧

闲来无事写个员工信息系统。

连接的My SQL数据库,其中需要导一些jar包,大家自行百度maven repository下载吧~

接下来上代码,有问题可以评论区讨论:


test(测试)类:

package empmanager.test;

import empmanager.dao.EmpDao;
import empmanager.dao.impl.EmpDaoImpl;
import empmanager.model.Emp;
import org.junit.Test;

import java.util.Date;
import java.util.List;

public class TestEmpDao {

    private EmpDao empDao = new EmpDaoImpl();
    @Test
    public void testFindAll(){
        List<Emp> list = empDao.findAll();
        System.out.println(list);
    }

    @Test
    public void testFindByID(){
        Emp Eid = empDao.findByID(1);
        System.out.println(Eid);
    }
    @Test
    public void testAddEmp(){
        Emp emp = new Emp(15,"Vic",1003,7,new Date(),5000.0,2000.0,10);
        boolean b = empDao.addEmp(emp);
        System.out.println(b);
    }
    @Test
    public void testUpdateEmp(){
        boolean bool = empDao.updateEmp(1,13000.0);
        System.out.println(bool);
    }
    @Test
    public void testDeleteEmp(){
        boolean b = empDao.deleteEmp(2);
        System.out.println(b);
    }
}

DruidUtil(工具)类:我用的是druid连接池

package empmanager.util;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DruidUtil {
    private static DataSource dataSource;
    /**
     * 静态代码块 加载配置文件
     */
    static {
        Properties props = new Properties();
        try {
            props.load(new FileInputStream("src/druid/druid.properties"));
            // 获取连接池
            dataSource = DruidDataSourceFactory.createDataSource(props);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取连接
     * @return
     * @throws SQLException
     */
    public static Connection getConnection() {
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return conn;
    }

    public static PreparedStatement getPreparedStatement(Connection conn,String sql){
        PreparedStatement pstat = null;
        try {
            pstat = conn.prepareStatement(sql);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return pstat;
    }

    /**
     * 给sql的占位符赋值
     * @param pstat
     * @param params
     */
    public static void bindParam(PreparedStatement pstat, Object... params){
        //可变参数本质就是一个数组
        //【1001,张三,5000.0】数组中的下标是0,1,2,但问号的顺序是1,2,3
        //params[0],params[1],params[2]
        for (int i = 1; i <= params.length; i++) {
            try {
                pstat.setObject(i, params[i-1]);
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }

    }

    /**
     * 释放资源
     * @param ps
     * @param conn
     */
    public static void close(PreparedStatement ps, Connection conn) {
        close(null,ps,conn);
    }
    /**
     * 释放资源
     * @param ps
     * @param conn
     */
    public static void close(ResultSet rs, PreparedStatement ps, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

model(员工信息)类:

package empmanager.model;

import java.io.Serializable;
import java.util.Date;
//定义一个Emp类并实现序列化接口
public class Emp implements Serializable {

    private static final long serialVersionUID = 2661275080534500356L;
    //有null值,所以用引用类型
    private Integer id;
    private String ename;
    private Integer job_id;
    private Integer mgr;
    private Date joindate;
    private Double salary;
    private Double bonus;
    private Integer dept_id;

    public Emp() {
    }

    public Emp(Integer id,String ename, Integer job_id, Integer mgr, Date joindate, Double salary, Double bonus, Integer dept_id) {
        this.ename = ename;
        this.id = id;
        this.job_id = job_id;
        this.mgr = mgr;
        this.joindate = joindate;
        this.salary = salary;
        this.bonus = bonus;
        this.dept_id = dept_id;
    }

    public String getEname() {
        return ename;
    }

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

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getJob_id() {
        return job_id;
    }

    public void setJob_id(Integer job_id) {
        this.job_id = job_id;
    }

    public Integer getMgr() {
        return mgr;
    }

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

    public Date getJoindate() {
        return joindate;
    }

    public void setJoindate(Date joindate) {
        this.joindate = joindate;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

    public Double getBonus() {
        return bonus;
    }

    public void setBonus(Double bonus) {
        this.bonus = bonus;
    }

    public Integer getDept_id() {
        return dept_id;
    }

    public void setDept_id(Integer dept_id) {
        this.dept_id = dept_id;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "id=" + id +
                ", job_id=" + job_id +
                ", mgr=" + mgr +
                ", joindate=" + joindate +
                ", salary=" + salary +
                ", bonus=" + bonus +
                ", dept_id=" + dept_id +
                '}';
    }
}

impl包下有个EmpDao接口:

package empmanager.dao;

import empmanager.model.Emp;

import java.util.List;

public interface EmpDao {
    //无参的查询方法
    List<Emp> findAll();

    Emp findByID(Integer id);

    boolean addEmp(Emp emp);

    boolean updateEmp(Integer id,Double salary);

    boolean deleteEmp(Integer id);
}

以及EmpDaoImpl类:

package empmanager.dao.impl;

import empmanager.dao.EmpDao;
import empmanager.model.Emp;
import empmanager.util.DruidUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class EmpDaoImpl implements EmpDao {
    @Override
    public List<Emp> findAll() {
        ArrayList<Emp> list = new ArrayList<>();
        ResultSet rs = null;
        //获取连接
        Connection conn = DruidUtil.getConnection();
        PreparedStatement pstat = DruidUtil.getPreparedStatement(conn, "select * from emp");
        try {
             rs = pstat.executeQuery();
            while(rs.next()){
                Emp emp = new Emp();
                emp.setId(rs.getInt("id"));
                emp.setEname(rs.getString("ename"));
                emp.setJob_id(rs.getInt("job_id"));
                emp.setJoindate(rs.getDate("joindate"));
                emp.setMgr(rs.getInt("mgr"));
                emp.setSalary(rs.getDouble("salary"));
                emp.setBonus(rs.getDouble("bonus"));
                emp.setDept_id(rs.getInt("dept_id"));
//              将对象装入集合
                list.add(emp);
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally{
            DruidUtil.close(rs, pstat, conn);
        }
        return list;
    }

    @Override
    public Emp findByID(Integer id) {
        Emp emp = new Emp();
        ResultSet rs = null;
        Connection conn = DruidUtil.getConnection();
        //预编译的sql执行对象;
        PreparedStatement pstat = DruidUtil.getPreparedStatement(conn, "select * from emp where id=?");
//            pstat.setInt(1,id);
            DruidUtil.bindParam(pstat, id);
            //执行查询
        try {
            rs = pstat.executeQuery();
            if(rs.next()){
                emp.setId(rs.getInt("id"));
                emp.setEname(rs.getString("ename"));
                emp.setJob_id(rs.getInt("job_id"));
                emp.setJoindate(rs.getDate("joindate"));
                emp.setMgr(rs.getInt("mgr"));
                emp.setSalary(rs.getDouble("salary"));
                emp.setBonus(rs.getDouble("bonus"));
                emp.setDept_id(rs.getInt("dept_id"));
            }
            //封装对象
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return emp;
    }

    @Override
    public boolean addEmp(Emp emp) {
        Connection conn = DruidUtil.getConnection();
        String sql = "insert into emp values(?,?,?,?,?,?,?,?)";
        PreparedStatement pstat = DruidUtil.getPreparedStatement(conn,sql);
        DruidUtil.bindParam(pstat, emp.getId(),emp.getEname(),
                emp.getJob_id(),emp.getMgr(),emp.getJoindate(),emp.getSalary(), emp.getBonus(),emp.getDept_id());
        try {
            int i = pstat.executeUpdate();
            if(i>0){
                return true;
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally{
            DruidUtil.close(null,pstat,conn);
        }
        return false;
    }

    @Override
    public boolean updateEmp(Integer id, Double salary) {
        Connection conn = DruidUtil.getConnection();
        String sql = "update emp set salary = ? where id = ?";
        PreparedStatement pstat = DruidUtil.getPreparedStatement(conn, sql);
        DruidUtil.bindParam(pstat,salary,id);
        try {
            int i = pstat.executeUpdate();
            if (i>0){
                return true;
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean deleteEmp(Integer id) {
        Connection conn = DruidUtil.getConnection();
        String sql = "delete from emp where id = ?";
        PreparedStatement pstat = DruidUtil.getPreparedStatement(conn, sql);
        DruidUtil.bindParam(pstat,id);
        try {
            int i = pstat.executeUpdate();
            if(i>0){
                return true;
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return false;
    }
}

创建数据库如下,我用的可视化工具是navicat:

利用数据库的员工信息管理系统就做好啦! 

我在其中实现了增删改三种方法,只是很基本的功能,代码也不算简洁,有更好的建议可以在评论区告诉我~

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值