(JAVASwing界面)java实现简单的人事管理系统(数据库原理课程设计)

这篇具有很好参考价值的文章主要介绍了(JAVASwing界面)java实现简单的人事管理系统(数据库原理课程设计)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:人事管理系统

重要!!!!

此文章可以作为报告提交,只需要按照你们的格式调整即可,文章内容符合大学报告格式。

摘要(包含两个部分):

1、课题需要完成的内容

人事管理系统是企业管理系统中不可缺少的重要组成部分,它的内容对于企业的决策者和管理者来说都至关重要,所以人事档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。我们希望设计一个人事管理系统能实现增加员工信息,删除员工信息及各种查询操作,以此提高信息管理的工作效率。人事管理系统应该拥有员工的全部信息,可以实现全部员工信息的输入,当员工离职时能实现删除该员工信息。同时,管理员可以通过登录看到所有的员工信息,也可以通过查询找到相应的员工信息。

人事管理系统

数据库:MySQL 8.0

              开发语言:java语言

  • 系统功能分析

人事管理系统应该解决以往手工管理的弊端,比如管理员不能及时地更新员工信息,不能及时同步员工修改的信息,也不能快捷查询员工的信息。通过对人事管理流程的分析,系统应该实现以下功能:管理员可以维护员工信息,包括员工信息的输入,员工信息的修改,删除转出、辞职、辞退、退休员工信息,按照一定条件查询员工信息。具体要求如下:

员工信息的输入:输入员工的基本信息包括员工的基本信息、学历信息、婚姻状况信息、 职称等。

员工信息的修改:修改员工的基本信息和删除转出、辞职、辞退、退休员工信息。

员工信息查询:按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员 工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息。

  • 系统的功能模块设计

1.用户登录模块

2.系统管理模块

(1)密码修改

(2)重新登录

(3)添加/删除用户

(4)退出系统

3.信息管理模块

(1)对学校里所有员工和院系进行统一标号,将每- -位员工的信息保存在员工档案记录中

(2)对新聘的员工,将其信息加入到员工档案记录中;对于转出、退休、辞职、辞退的员工,将其信息从员工档案记录中删除

(3)当员工信息发生变动时,修改员工档案记录中相应的属性

4.信息查询模块

查询员工信息及院系信息。

  • 系统功能的基本要求

(1)员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等

(2)员工各种信息的修改;

(3)对于转出、辞职、辞退、退休员工信息的删除;

(4)按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;

(5)对查询、统计的结果打印输出;

  • 数据库设计
  1. 系统概念结构设计

1.1系统功能模块图


1.2信息管理模块

功能如下图所示: 1)对人事管理系统里所有员工和院系进行统一标号, 将每一位员工的信息保存在员工档案记录中

2)对新聘的员工,将其信息加入到员工档案记录中;对于转出、退休、辞职、辞退的员工,将其信息从员工档案记录中删除

3)当员工信息发生变动时,修改员工档案记录中相应的属性

1.2.3
信息查询模块 功能如下图所示:

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

  1. 数据字典

(1)数据项

数据项名

含义说明

数据类型

长度

取值范围

姓名

员工姓名

varchar

20

编号

员工编号

int

10

性别

员工性别

char

8

男或女

年龄

员工年龄

int

2

18~100

配偶

员工另一半

varchar

20

专业

员工所学专业

varchar

10

联系方式

员工手机号码

varchar

10

住址

员工家庭住址

varchar

20

薪资

员工月薪

varchar

255

学校

毕业学校

varchar

10

部门号

部门编号

decimal

2

0~10

部门名

部门名称

varchar

10

部门人数

部门员工数

int

10

部门经理

部门经理

varchar

20

     (2)数据结构

数据结构名称

含义说明

组成

基本信息

员工的基本信息

编号,姓名,年龄,性别,联系方式,住址,薪资,所属部门

婚姻信息

员工的婚姻信息

是否结婚,配偶名字,是否有孩子

学历信息

员工的学历信息

毕业学校,毕业时间,所学专业,外语

工作岗位

员工的职位

职位

部门信息

员工所属部门

部门号,部门,部门经理,员工数

人事管理系统功能的基本要求:

(1)员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等

(2)员工各种信息的修改;

(3)对于转出、辞职、辞退、退休员工信息的删除;

(4)按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;

(5)对查询、统计的结果打印输出;

二:用到所学知识

JDBC的使用:JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统(RDBMS)之一。

Java接口调用;

Jdbc的使用,以及数据连接和java语句到数据库查询语句的转化 ;

Java UI 界面设计(JLabel,JPanel,JButton,JCombox)、布局设计(GridBagLayout、GridBagConstraints、setLayoutJScrollPane);

Java 文本框的文本处理(JTextField, setText());

Java 按钮的设计以及鼠标点击事件的运用(itemStateChanged、actionPerformed)

三:设计思路

设计数据库的E-R图和实体关系,首先对人事管理系统进行需求分析,系统应该实现以下功能:管理员可以维护员工信息,包括员工信息的输入,员工信息的修改,删除转出、辞职、辞退、退休员工信息,按照一定条件查询员工信息等。分析人事管理系统的需求可以得到系统的实体,实体属性,实体的码,实体之间的联系以及联系的类型,并利用E-R图进行表示,然后就可以设计出人事管理系统的概念模型,即概念结构设计。

可以从上述需求分析中确定的实体有:员工基本信息,员工婚姻情况,员工学历信息,工作岗位和部门信息,同时确定各实体之间的联系、

随后进行初步E-R图的设计,人事管理系统涉及了5个实体集,根据需求分析可以初步设计出实体之间的关系。在初步E-R图的基础上将实体的属性加入E-R土中可以得到人事管理系统的全局E-R图。

对数据库进行逻辑结构设计,根据概念结构设计的全局E-R图,按照转换规则将E-R图转换成模型。逻辑设计结构便是将所有的实体和联系转换为一系列的关系模式。E-R图中实体单独提取出来作为一个关系模式。

确定了系统的实体与联系之后,再进一步确定实体与联系的属性及主键。实体,联系的属性及主键具体如下(标志的为主键):

  1. 基本信息(员工号,姓名,年龄,性别,部门,部门编号,家庭住址,电话,薪资)
  2. 婚姻信息(姓名,婚姻状态(是否结婚),配偶姓名,(是否有)孩子)
  3. 学历信息(员工号,姓名,学历,专业,毕业院校,毕业时间,外语类型)
  4. 工作岗位(员工号,姓名,职位)
  5. 部门信息(部门号,部门,部门楼层,部门平均薪资)

创建好数据库后,使用JDBC对数据库进行连接,而数据查询是数据库的核心,通过MySQL提供的sql语句进行对数据库的信息进行查询等操作。

四:程序流程图
人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

 人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

 人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

五:主要程序代码

创建员工基本信息表

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

创建婚姻信息表

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

创建学历信息表

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

创建工作岗位信息表

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

创建部门信息表

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

连接数据库以及查询操作程序:

public class Database {

    static String driver = "com.mysql.cj.jdbc.Driver";//数据库驱动

    static String url = "jdbc:mysql://localhost:3306/databaseproject?useSSL=false";//数据库连接url

    static String user = "root";//用户名

    static String password = "password";//密码



    private static Connection conn = null;//Connection对象

    private static Statement state = null;//Statement对象

    private static ResultSet res = null;//ResultSet对象

    /*

     * Connection

     * 加载数据库驱动,并连接数据库

     */

    public static Connection getConnection(){

        try {

            Class.forName(driver);//

            conn = DriverManager.getConnection(url,user,password);//

            return conn;

        } catch (SQLException e) {

            e.printStackTrace();

        }catch (ClassNotFoundException e1) {

            e1.printStackTrace();

        }

        return null;

    }

    /*

     * Statement

     * 创建Statement

     */

    public static Statement createStatement(){

        try{

            state =getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

            return state;

        }catch(SQLException e){

            e.printStackTrace();

        }

        return null;

    }

    /*

     * ResultSet

     * 执行数据查询语句的方法,实现数据查询功能

     */

    public static ResultSet query(String sql){

        try{

            res = createStatement().executeQuery(sql);

            return res;

        }catch(SQLException e){

            e.printStackTrace();

        }

        return null;

    }

    /*

     *

     * 返回整型

     * 执行executeUpdate方法,实现数据的删除,修改,更新

     */

    public static int update(String sql){

        try{

            return createStatement().executeUpdate(sql);

        }catch(SQLException e){

            e.printStackTrace();

        }

        return -1;

    }

    /*

     * 释放内存,关闭数据库

     */

    public static void close(){

        try {

            if(conn!=null){

                conn.close();

            }else if(state!= null){

                state.close();

            }else if(res!=null){

                res.close();

            }

        } catch (SQLException e) {

                e.printStackTrace();

            }

    }

    public void getin(String h){

       

    try {

        Statement st=conn.createStatement();

        String sql = "insert into storage select * from basicinfo where Edeptid='"+h+"'";

        st.executeUpdate(sql);

    } catch (SQLException e) {

        // TODO 自动生成的 catch 块

        e.printStackTrace();

    }

    }

}

/*

     * 查询员工信息

     * 用于:用于模块【员工基本信息管理】,模块【删除员工信息】,模块【部门管理】,

     */

    public String[][] searchMsg(){

        int i = 0;

        int rows = 0;

        String s[][]=null;

        //涉及2张表的查询,要通过外键进行连接

        String sql="select PersonID,Name,Sex,B_Dept,S_Dept,Salary,Assess,Dept.DeptID,Person.DeptID "

                +"from Dept,Person where Dept.DeptID = Person.DeptID order by PersonID";

        res = db.query(sql);

        try {

            if(res.last()){

                rows=res.getRow();//行数

            }

            if(rows == 0){

                s = new String[1][6];

                s[0][0]="";

                s[0][1]="";

                s[0][2]="";

                s[0][3]="";

                s[0][4]="";

                s[0][5]="";

               

            }else{

                s = new String[rows][6];

                res.first();//第一行

                res.previous();//反向查询

                while(res.next()){

                   s[i][0]=res.getString("PersonID");

                   s[i][1]=res.getString("Name");

                   s[i][2]=res.getString("Sex");

                   s[i][3]=res.getString("B_Dept")+"-"+res.getString("S_Dept");   

                   s[i][4]=res.getString("Salary");//工资

                   s[i][5]=res.getString("Assess");//考核信息

                   i++;

                }

               

            }

       

        } catch (SQLException e) {

            e.printStackTrace();

        }

        return s;

    }

/*

 * 删除部门信息

 * 用于:(1)模块【删除信息管理】,删除员工信息

 *

 */

    String deptId;

    public void deleteDeptMsg(String deptId){

        this.deptId=deptId;

        String sql = "delete from department where deptID="+deptId+"";//删除部门信息

        db.update(sql);

       

    }

1.继承接口以及接口调用及方法实现人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

其中基本每一个子节点都会实现ActionListener和ItemListener接口,因为会有鼠标点击事件的发生以及对应点击事件以后的的响应。

2.数据库JDBC的使用 以及根据按钮的不同实现不同的功能时调用的sql语句人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

3.将查询结果从数据库中获取以后,返回到一个String数组里面,如图1,然后用数字的下标分离得到需要的结果,在需要用到数据库数据的部分用一个数组来接收对应的sql语句得到的结果并将它们置于对应的文本框里面JTextFiedl,如图2。人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

图1

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

三:设计思路

首先设计一个登录界面,在用户名和密码框中要输入与数据库中对应的名字和密码才可以进入管理界面,如图1所示。当输入不正确时就要提示输入是否有误或者密码是否正确,如图2所示

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea        

然后登录成功后来到管理系统的主界面如图3。

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea            

图3中将整个面板分为左右两部分其中左边界面是一个JSplitPane 的一个split面板可以通过点击进行折叠,折叠后界面如图4:

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

这里用了一个root树根的方法,后面一共有五个不同的功能界面,所以又将root的第一个根结点又分成五份结点,和界面中匹配的属性进行对应

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

然后再通过鼠标的特定点击事件进行不同的功能实现。

例如第一个功能“添加人员信息”:

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

通过点击不同页面的按钮实现不同的sql语句调用,最终将数据库中的数据通过数组的方式返回到程序当中并且打印到所需要的地方。其中有一个下滑按钮进行快速选择如图3,选择好以后进行内容的自动填充结果如图4

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea图3

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea图4

四:程序流程图

人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

 人力资源管理系统数据库课程设计,人事管理系统,intellij-idea

五:主要程序代码

下滑选项:      

if(e.getStateChange()==ItemEvent.SELECTED){//选择状态

                     String s = "" + e.getItem().toString();//获取字符串    

                     Eid = s.substring(0,1);//人员编号

                     p = pbean.search(Eid);//字符串数组p用于获取从数据库导入的人员信息

                     //将数据库导入的人员信息通过数组,添加到相应的组件

                     EidText.setText(p[0]);//人员编号

                     EnameText.setText(p[1]);

                     sexText.setText(p[2]);

                     ageText.setText(p[3]);//出生年月信息

                     phoneText.setText(p[4]);//电话信息

                     adText.setText(p[5]);//地址信息

                     deptIDText.setText(p[6]);

                     deptText.setText(p[7]);

                     salaryText.setText(p[8]);//工资                 

              }

       }

public void actionPerformed(ActionEvent e){

              if(e.getSource() == update){//单击修改

                     //调用PersonBean的修改方法

                     pbean.update(EidText.getText(), EnameText.getText(), sexText.getText(),

                                   ageText.getText(), phoneText.getText(), adText.getText(),deptIDText.getText(),deptText.getText(),salaryText.getText());

                     JOptionPane op = new JOptionPane();

                     op.showMessageDialog(null, "修改成功!");//提示

              }else if(e.getSource() == clear){

                     clearAll();//清空文本框

                    

              }

       }

       /*

        * 清空文本框方法

        */

       public void clearAll(){

              EidText.setText(null);

              EnameText.setText(null);

              sexText.setText(null);

              ageText.setText(null);

              phoneText.setText(null);

              adText.setText(null);

              //msg.setToolTipText(null);

              deptText.setText(null);        

       }

Sql语句:

public String[] search(String id){

              this.id = id;

      

              String sql = "select * from basicinfo where Eid = "+id+"";//根据EmployeeID查询信息

             

              res = db.query(sql);//查询信息

              String s[] = new String[10];//定义一个数组,用于接收从数据库导入的信息

              try {

                            while(res.next()){

                                   s[0] = res.getString("Eid");

                                   s[1] = res.getString("Ename");

                                   s[2] = res.getString("Esex");

                                   s[3] = res.getString("Eage");

                                   s[4] = res.getString("Ephonenum");

                                   s[5] = res.getString("Eaddress");

                                   s[6] = res.getString("Edeptid");

                                   s[7] = res.getString("Edept");//

                                   s[8] = res.getString("Esalary");//工资

                            }

                    

              } catch (SQLException e) {

                    

                     e.printStackTrace();

              }finally{

                     db.close();//关闭数据库

              }

              return s;//返回一维数组

       }

修改后的sql语句:

public void update(String s1,String s2,String s3,String s4,String s5,String s6,String s7,String s8,String s9){

        this.s1=s1;//id

        this.s2=s2;//name

        this.s3=s3;//sex

        this.s4=s4;//age

        this.s5=s5;//phonenum

        this.s6=s6;//address

        this.s7=s7;//deptid

        this.s8=s8;//deptname

        this.s9=s9;//salary

       

        String sql="update basicinfo set Ename='"+s2+"',Esex='"+s3

            +"',Eage='"+s4+"',Ephonenum='"+s5+"',Eaddress='"+s6+"',Edeptid='"+s7+"',Edept='"+s8+"',Esalary='"+s9+"' where Eid="+s1+"";

       

        db.update(sql);

    }

觉得写的好的可以给一个赞嘛😘

后续我将上传资源到这个平台,如有急需但是我又没有及时回复的小伙伴可以通过该资源链接下载。或者需要源码请联系lee_peach_me@163.com,15文,比这个平台更cheaper一些。

大家获得代码后记得把database中的数据库连接改成自己的user和password,并且数据库也要去找好版本。

人事管理资源链接https://download.csdn.net/download/Lee_Cdut/85586398文章来源地址https://www.toymoban.com/news/detail-768308.html

到了这里,关于(JAVASwing界面)java实现简单的人事管理系统(数据库原理课程设计)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot/java/php/node/python人事管理系统【计算机毕设】

    本系统 (程序+源码) 带文档lw万字以上    文末可领取本课题的JAVA源码参考   选题背景: 随着信息技术的不断发展和企业规模的扩大,人事管理在企业运营中变得越来越重要。传统的人事管理方式已经无法满足现代企业对高效、精确和可靠的人力资源管理需求。因此,开

    2024年02月05日
    浏览(40)
  • 基于springboot实现教师人事档案管理系统项目【项目源码+论文说明】

    基于springboot实现在线商城系统演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本ONLY在线商城系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,

    2024年04月11日
    浏览(41)
  • 【Java】学生成绩管理系统(图形化界面实现相关功能)

    从功能的代码实现到界面的展示整个制作过程全部用Java语言实现。         1、在idea创建一个工程文件,在工程文件下创建一个model模块,在model模块下载创建三个package包分别用来存放(BackEndCode)后端代码包、(MainExe)主程序包、(WebCode)界面实现代码包,再在三个包中创建如

    2024年02月03日
    浏览(45)
  • JavaSwing+MySQL的酒店管理系统

    点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88063706?spm=1001.2014.3001.5503 JDK1.8、MySQL5.7 功能:散客开单:完成散客的开单,可一次最多开5间相同类型的房间。 2、团体开单:完成团体的开单,开放数量没有限制,可同时开不同类型的房间。 3、宾客结帐:自动统

    2024年02月16日
    浏览(40)
  • Eclipse+MySql+JavaSwing(WindowBuilder)学生管理系统

    登录界面 管理员界面 学生界面 教师界面 eclipse网址:https://www.eclipse.org/downloads/ (进入之后安装包直接安装就行) MySql官方网址:http://www.mysql.com 这里我推荐用C语言中文网的下载方式,较为详细 MySql下载步骤详解 配置为 MySql安装配置教程 在这温馨提醒一下,一般配置路径不

    2024年02月03日
    浏览(39)
  • JAVA:实现简单的人员管理系统

    ------实现系统的增删改查,代码会在底部会发出来; 1.1         右键在指定目录新建一个软件包; 1.2         在 Name 取好名字点击 Finish 建立包;  1.3         右键新建的包创建两个类;  1.4         取名后点击 Finish ;         为了看起来更规范,我一个取名为 Staff 、

    2024年02月11日
    浏览(36)
  • 基于javaSwing、MySQL的酒店客房管理系统(附源码)

    由于近期询要的人过多,自行加群769119544领取源码 目录 一、功能需求 二、数据字典 1.数据流条目 2.文件条目 三、用例图 四、数据流图 五、E-R图 六、系统框架  七、数据库设计 八、界面设计 九、代码展示 1、数据表对象层(domain层) 1.1、房间对象初始化 1.2、旅客对象初始

    2024年02月03日
    浏览(46)
  • Java基础——学生成绩信息管理系统(简单实现)

    1、 定义一个学生类 Student,包含姓名、成绩信息; 2、使用 ArrayList集合存储学生对象; 3、 对集合中的元素进行增删查改的操作。 学生类可以包含姓名、成绩、学号、年龄等等,这里只包含了前两项学生类属性。 在该类中定义了简单的增、删、查、改的方法。 其中,遍历集

    2024年02月11日
    浏览(33)
  • 用Java语言实现一个简单的图书管理系统

    这个系统有两个登录选项:用户和管理员,选择两者进入都需要输入账号和密码进行审核。 用户有查看图书列表,借阅图书,归还图书这些选项,管理员有查看图书列表,增加图书,删除图书,修改图书这些选项。 我们先建一个Book类,用来存放图书名称以及借阅状态,图书

    2024年02月09日
    浏览(43)
  • Java实现一个简单的图书管理系统(内有源码)

    哈喽哈喽大家好啊,之前作者也是讲了Java不少的知识点了,为了巩固之前的知识点再为了让我们深入Java面向对象这一基本特性,就让我们完成一个图书管理系统的小项目吧。 项目简介: 通过管理员和普通用户的两种操作界面,利用其中的方法以及对象之间的交互,来实现对

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包