人事管理java 课程设计_java课程设计人事管理系统

这篇博客详细介绍了如何使用Java进行课程设计,构建一个完整的人事管理系统。系统包括员工信息管理、员工考核管理等功能,涉及查询、添加、修改和删除等操作。通过类的设计和数据库交互,实现了员工信息的增删查改以及考核记录的管理。博客内容涵盖了从需求分析、功能模块开发到各个关键类的说明,展示了实际项目开发中的应用。
摘要由CSDN通过智能技术生成

《java课程设计人事管理系统》由会员分享,可在线阅读,更多相关《java课程设计人事管理系统(31页珍藏版)》请在人人文库网上搜索。

1、人事管理系统一. 系统需求分析: (1)系统的功能设计 (2)系统功能结构 (3)数据库设计 二. 功能模块开发 (1)查询人员信息界面 (2)添加员工界面 (3)修改员工信息界面 (4)删除员工界面 (5)员工考核界面 (6)员工考核历史记录界面 三. 各个类说明 四. 程序代码 ( 1) Manager ( 2) CardEmploy ( 3) SelEmploy ( 4) AddEmploy ( 5) ReviseEmploy i UpdDialog ( 6) DelEmploy ( 7) AllEmploy ( 8) Examine ( 9) History ( 10) EmployM。

2、odel ( 11) AppraisalModel (12) SqlHelper .系统需求分析:(1) 系统的功能设计i员工信息管理:员工信息管理包括对员工基本信息和情况进行查询、添加、删 除和修改及部门管理ii员工考核管理:包括对员工的考核情况进行操作,还可以对历史考核情况进行 浏览(2) 系统功能结构人事管理的系统结构功能结构如图所示:(3) 数据库设计员工基本表(Employinfo)名称字段名称数据类型主键非空工号Emp novarchar(10)YesYes姓名En amevarchar(10)Noyes性别Sexvarchar(4)Noyes出生年月BirthdayDatetim。

3、eNoYes部门DeptNoChar(10)NoYes职务EjobChar(20)NoYes工资SalfloatNoYes员工考核表(Appraisal)名称字段名称数据类型主键非空工号Emp novarchar(10)yesyes考核Consequeneevarchar(10)noyes变更日期RegDatedatetimeNoYes考核历史记录(History)名称字段名称数据类型主键非空流水号JourNoIntYesyes工号Emp novarchar(IO)noyes姓名En amevarchar(IO)NoYes上次考核OldI nfovarchar(IO)NoYes本次考核NewI。

4、 nfovarchar(IO)NoYes变更日期RegDatedatetimeNoYes功能模块开发(1)查询人员信息界面实例一个SelEmploy类,当点击“查询”时调用 EmployModel类的queryEmploy方法实现查询(2) 添加员工界面 实例一个 AddEmploy 类当点击“添加”时调用 EmployModel 类的updEmploy 方法实现添加功能( 3) 修改员工信息界面实例一个 ReviseEmploy 类当点击“修改”时,先调用 UpdDialo 弹跳出一个修改信息对话框,信息修改完毕后, 调用 EmployModel 类的 updEmploy 方法实现修改功能(。

5、4) 删除员工界面实例一个 DelEmploy 类当点击“删除”时调用 EmployModel 类的updEmploy 方法实现删除功能( 5) 员工考核界面实 例 一 个 Examine 类 当 点 击 “ 确 认 ” 时 调 用 AppraisalModel 类 的updAppraisal 方法来完成考核功能(6) 员工考核历史记录界面实例一个 History 类当点击时调用 AppraisalModel 类的 updAppraisal 方法来完成考核功能三. 各个类说明类之间的关系图 :1. Manager类Manager 类的一个实例,从而生成了人事管理系统的界面 ,用 JSplitP。

6、ane 类将整个界 面分为左右两个部分。其中左侧实现了人事管理系统的功能树,采用 JTree类构建, 同 时 实 现 了 TreeSelectionListener 接 口 , 定 义 了 该 接 口 所 必 须 实 现 的 valueChanged(TreeSelectionEvent e方法,JSplitPane右边加入卡片布局CardEmploy类。当JTree的TreeSelectionEvent事件发生时,调用CardEmploy的c.show方法切换不同卡片,实现不同的管理界面。2. CardEmploy 类JTree 的CardEmploy 为卡片布局类的面板,主要功能是添加各个。

7、界面的卡片,当TreeSelectio nEve nt事件发生时。切换不同的卡片3. EmployModel、AppraisalModel 类这两个类继承了 AbstractTableModel,主要实现的功能是,存放调用 sqlhelper类得到的数据。可以通过调用sqlhelper实现增删查改功能4. SqlHelpe r 类主要就是连接数据库的一些基础操作 是,方便代码修改,重复使用5. SelEmplo y这个类继承 Pan el,为“查询员工”的界面。实现了 Actio nliste ner接口,当ActionEvent事件发生时,调用EmployModel类的queryEmploy。

8、方法实现 查询6. AddEmploy、ReviseEmploy、DelEmploy 类这些类继承Pane,分别为“添加员工信息” “修改员工信息” “删除员工信息”的界面,这些类实现了 Actionlistener接口,当ActionEvent事件发生时,调 用EmployModel类的updEmploy方法实现添加、查询、删除、功能7. Examine 类这个类继承Pan el,为“考核员工”界面。 这个类实现了 Actio nliste ner接口,当ActionEvent 事件发生时,(1)先通过调用 AppraisalModel 的 queryAppraisal 获取上次考核成绩,(。

9、2)修改Appraisal表的考核成绩(3)再把上次考核成绩 跟本次考核成绩加到History表中8. History这个类主要是把History表中的信息显示到界面上。四.程序代码(1) Man agerpackage com.Ma nager;import java.awt.*;import javax.sw in g.*;importimportimportimportpublic class Manager exte nds JFrameimpleme ntsJPaneljp ;JSplitPane js ;JScrollPane jsp ;JTree tree ;DefaultMut。

10、ableTreeNoderoot , t1 , t2 ,t1_1t2_2 ;CardEmploy ae;EmployModel em;public static void main( Str in g args) Man ager manager =new Man ager();public Man ager() /给树的各个结点赋值TreeSelectio nListe ner t1_2 ,t1_3 ,t1_4 ,t1_5t2_1roott1t1 1new DefaultMutableTreeNode( new DefaultMutableTreeNode( DefaultMutableTr。

11、eeNode(newt1 2newt1 3newDefaultMutableTreeNode(DefaultMutableTreeNode(t1 4newt1 5t2DefaultMutableTreeNode(DefaultMutableTreeNode( new DefaultMutableTreeNode(newt2 1newt1.add(t1__1t1.add(t1__2t1.add(t1__3t1.add(t1__4t1.add(t1__5t2.add(t2__1t2.add(t2__2root .ad(d(t1root .ad(d(t2t2 2new););););););););。

12、DefaultMutableTreeNode(DefaultMutableTreeNode();人事管理系统“);基本信息管理“);查询员工“);添加员工“);修改员工信息“);删除员工资料“);查询全体员工“);人员考核管理“);人员考核);考核历史查询);tree = new JTree( root );/ 对树进行监听tree .addTreeSelectionListener(this );/ 实例化CardEmploy 面板 并加到jsplitpane的边ae = new CardEmploy。;js = new JSplitPa ne();js .setLeftComponent(。

13、tree );js .setRightComponent(ae);this .getContentPane().add(js );this .setTitle( 人事管理系统);this .setVisible( true );this .setSize(600, 500);EXIT_ON_CLOSE );this .setDefaultCloseOperatio n( JFrame.public void valueCha nged(TreeSelecti on Eve nt e) /获取点击结点名称treeDefaultMutableTreeNode dpath = (DefaultMut。

14、ableTreeNode).getLastSelectedPathComp onen t();/ 通过点击不同结点切换不同界面if (dpath.equals(t1_1 ) ae . c .show( ae , 1);elseif (dpath.equals(t1__2)ae.c .show( ae,2);elseif (dpath.equals(t1__3)ae.c .show( ae,3);elseif (dpath.equals(t1__4)ae.c .show( ae,4);elseif (dpath.equals(t1__5)ae.c .show( ae,5);elseif (dpa。

15、th.equals(t2__1)ae.c .show( ae,6);elseif (dpath.equals(t2__2)ae.c .show( ae,7);(2)CardEmploy/*用卡片布局设置各个界面*/package com.Ma nager;import javax.swi ng.*;import java.awt.*;c;selE ;addE ;public class CardEmployexte ndsPan elCardLayout/查询表SelEmploy/添加表AddEmploy/修改员工信息表ReviseEmployrevE/删除员工表格DelEmploy delE。

16、 ;/所有员工信息AllEmployallE/员工考核表ExamineexaE ;/历史记录界面HistoryHis ;public CardEmploy()/ /查询员工表selE = new SelEmploy();/添加员工表addE = new AddEmploy();/ /修改员工信息r evE = new ReviseEmploy();/删除员工表格delE = new DelEmploy();/所有员工信息allE = new AllEmploy();/员工考核表 exaE = new Exam in e();/历史记录界面His = new History。;JPa nel j。

17、p =_ new JPa nel();/ /定义cardemploy 面板 为卡片布局 /把各个面板加入到 C的卡片布局中c =new CardLayout();t his.setLayout(c);t his.add(selE,1t his.add(addE,2t his.add(revE,3t his.add(delE,4t his.add(allE,5t his.add(exaE,6t his.add(His ,7);););););););(3) SelEmploy* SelEmploy 类设置查询员工界面*/package com.Ma nager;import java.awt.*。

18、;importjavax.swi ng.*;importpublic class SelEmployexte ndsPanel impleme ntsActi on Liste ner EmployModelem;JLabeljl ;JTextFieldjtf ;JButtonjb ;JTablejt ;JScrollPa nejsp ;JPaneljp1 ;publicSelEmploy() /北部jp1=new JPa nel();jl=new JLabel(输入员工号jtf=new JTextField(20);jb=new JButton(查询”);/对查询按钮监听jb.addActi。

19、 on Liste ner(thisjp1.add(jl );jp1.add(jtf );jp1.add(jb );/中部););em = new EmployModel();Stri ng paras = 1 ;,paras);em.queryEmploy( select * from Employi nfo where 1 = ?jt = new JTable( em);jsp = new JScrollPane(jt );this .setLayout( new BorderLayout();this .add( jp1 , BorderLayout.NORTH);this .add( 。

20、jsp , BorderLayout.CENTER);public voidacti on Performed(Acti on Eve nt e) if (e.getSource() =jb ) String name = this . jtf .getText().trim();Stri ng sql =select * from Employi nfo where Emp no = ?Stri ng paras = n ame ;em = new EmployModel();em.queryEmploy(sql, paras);/查找成功更新表jt .setModel( em);(4) A。

21、ddEmploypackage com.Ma nager;import java.awt.*;import javax.sw in g.*;importpublic class AddEmployexte ndsPanelimpleme ntsActi on Liste ner JLabel jl , jl1 , jl2 ,jl3 , jl4 , jl5,jl6,jl7 ;JButtonjb1 , jb2 ;JTextFieldjtf1 , jtf2,jtf3 , jtf4 ,jtf5,jtf6,jtf7JPanel jp1 , jp2 , jp3,jp4 ;EmployModel em;pu。

22、blicAddEmploy() jl1=new JLabel(工号:);jl2=new JLabel(姓名:);jl3=new JLabel(性别:);jl4=new JLabel(岀生年月:jl5=new JLabel(部门:);jl6=new JLabel(职位:);jl7=new JLabel(工资:);jtf1=newJTextField(20);jtf2=newJTextField(20);jtf3=newJTextField(20);jtf4=newJTextField(20);jtf5=newJTextField(20);jtf6=newJTextField(20);jtf7=n。

23、ewJTextField(20);jb1 = new JButton(添加);jb2 = new JButton(取消);/ 监听添加取消按钮jb1 .addActi on Liste ner( jb2 .addActionListener( jp1 = new JPa nel( jp2 = new JPa nel( jp3 = new JPa nel();this );this );new GridLayout(7, 1);new GridLayout(7, 1);jp1.add(jl1jp1.add(jl2jp1.add(jl3jp1.add(jl4jp1.add(jl5jp1.add(j。

24、l6jp1.add(jl7jp2.add(jtf1jp2.add(jtf2jp2.add(jtf3jp2.add(jtf4jp2.add(jtf5jp2.add(jtf6jp2.add(jtf7jp3.add( jb1 );jp3jp4.add( jb2 );= new JPanel( new BorderLayout();jp4jp4jp4.add( jp1 , BorderLayout.add( jp2 , BorderLayout. .setSize(300, 300);WEST);EAST );thisthis.setLayout(.add(jp4new FlowLayout(); )。

25、;this.add(jp3); publicif (e.getSource() =actionPerformed(ActionEvent e) jb1 ) / 调用 EmployModel 里的 updEmploy 方法,实现对表格的添加 String sql =insert into Employinfo values(?,?,?,?,?,?,?)String paras = jtf1 .getText(), jtf2 .getText(), jtf4 .getText(), jtf5 .getText(),voidjtf3jtf6 .getText(),.getText(),5)packa。

26、ge/*jtf7 .getText() ; em = new EmployModel();if /( em.updEmploy(sql, paras) / 当添加新员工成功时,则弹出 ”添加成功JOptionPane. showMessageDialog ( this else if (! em.updEmploy(sql, paras) JOptionPane. showMessageDialog ( this的对话框, 添加成功 );, 添加失败 );当新员工加入成功后,要把新加入员工的工号加到考核表AppraisalModel temp = new AppraisalModel();St。

27、ring sql1 =insert into Appraisal(Empno) values(?)String paras1 = jtf1 .getText() ; else if( e.getSource() = jb2)jtf1.setText();jtf2.setText();jtf3.setText();jtf4.setText();jtf5.setText();jtf6.setText();jtf7.setText();temp.updAppraisal(sql1, paras1);ReviseEmploycom.Manager;修改员工界面*/import java.awt.*;i。

28、mportimportjavax.swi ng.*;publicclass ReviseEmployexte nds Panelimpleme ntsActi on Liste ner JTable jt ;JScrollPanejsp ;JButtonjb1 , jb2 ;JPaneljp1 , jp2 ;EmployModelem;JLabeljl1 ;public ReviseEmploy() jl1 = new JLabel( 修改员工信息 “,JLabel. CENTER);jl1 .setFont(new Font(宋体,Font. BOLD, 28);jp2 = new JPa 。

29、nel();jp2 .add( jl1 );em = new EmployModel();Stri ng paras = 1 ;em.queryEmploy( select * from Employi nfo where 1 = ?, paras);jt = new JTable( em);jsp=new JScrollPa ne(jt );jb1=new JButt on(修改“);jb2=new JButt on(刷新“);II对两个按钮进行监听jb1.addActi on Liste ner(this);jb2.addActi on Liste ner(this);this.setLa。

30、yout(newBorderLayout();jp1=new JPa nel();jp1.add( jb1 );jp1.add( jb2 );this.add( jp2 ,BorderLayout.NORTH);this.add( jsp , BorderLayout.CENTER);this.add( jp1 , BorderLayout.SOUTH);public voidacti on Performed(Acti on Eve nt e) if (e.getSource() =jb1 ) int rowNum = this . jt .getSelectedRow();if (rowN。

31、um = -1) JOptionPane.showMessageDialog (this ,请选择一行);return ;/弹出修改对话框new UpdDialog( em, rowNum); else if (e.getSource() =jb2 ) II刷新修改界面中的表格em = new EmployModel();Stri ng parasl = 1 ;,parasl);em.queryEmploy( select * from Employi nfo where 1 = ? jt .setModel( em);i UpdDialogpackage com.Ma nager;/* *弹。

32、出修改界面 */importjavax.sw in g.*;import java.awt.*;Acti on Liste ner importJLabeljl1 , jl2 , jl3,jl4 , jl5 ,jl6 , jl7 ;JButt onjb1 , jb2 ;JTextFieldjtfl , jtf2,jtf3 , jtf4,jtf5 , jtf6JPaneljp1 , jp2 , jp3JpublicUpdDialog(EmployModel em,int rowNums) jl1=new JLabel(工号:);jl2=new JLabel(姓名:);jl3=new JLabel。

33、(性别:);jl4=new JLabel(岀生年月:);jl5=new JLabel(部门:);jl6=new JLabel(职位:);jl7=new JLabel(工资:);public class UpdDialog exte nds JDialog impleme ntsjtf7jtfl = new JTextField(20);jtf2 = new JTextField(30);jtf3 = new JTextField(30);jtf4 = new JTextField(30);jtf5=newJTextField(30);jtf6=newJTextField(30);jtf7=ne。

34、wJTextField(30);/ 初始化jtextfield 数据jtfl .setText(String) em.getValueAt(rowNums, 0); jtfl .setEditable( false );jtf2.setText(Stri ng)em.getValueAt(rowNums,1);jtf3.setText(Stri ng)em.getValueAt(rowNums,2);jtf4.setText(Stri ng)em.getValueAt(rowNums,3);jtf5.setText(Stri ng)em.getValueAt(rowNums,4);jtf6.s。

35、etText(Stri ng)em.getValueAt(rowNums,5);jtf7.setText(Stri ng)em.getValueAt(rowNums,6);jb1=new JButt on(修改“);jb2=new JButt on(取消);/对两个按钮监听jb1.addActi on Liste ner(thisjb2.addActi on Liste ner(thisjp1new JPa nel();););jp2jp3new JPa nel();new JPa nel();/设置布丿局jp1.setLayrout(new GridLayout(7, 1);jp2.setL。

36、ayrout(new GridLayout(7, 1);/添加组,件jp1.add(jl1 );jp1.add(jl2 );jp1.add(jl3 );jp1.add(jl4 );jp1.add(jl5 );jp1.add(jl6 );jp1.add(jl7 );jp2.add(jtf1);jp2.add(jtf2);jp2.add(jtf3);jp2.add(jtf4);jp2.add(jtf5);jp2.add(jtf6);jp2.add(jtf7);jp3.add(jb1 );jp3.add(jb2 );this.add(jp1,BorderLayout.WEST);this.add(j。

37、p2,BorderLayout.CENTER)this.add(jp3,BorderLayout.SOUTH);thisthis.setSize(300, 250);.setVisible( true );thisthis.setLocati on(200, 200);.addWi ndowListe ner( publicWin dowAdapter() void wi ndowClosi ng(Wi ndowEve nt e) newdispose();); publicifvoid acti on Performed(Acti on Eve nt e) (e.getSource() =j。

38、b1 ) /修改员工信息的sql 语句,paras为待注入的值String sql =update Emplo yinfo set + En ame = ?,Sex = ?,Birthday?, DeptNo =?, Ejob? ,Sal=?where Emp no = ?;.getText(),Stri ng paras = jtf2 .getText(),jtf3 .getText(),jtf4jtf5 .getText(),jtf6 .getText(),jtf7 .getText(),jtf1 .getText() ;EmployModel temp =new EmployModel(。

39、);/如果修改语句运行成功则弹岀修改成功”对话框if (temp.updEmploy(sql, paras) JOptionPane.showMessageDialog (this ,修改成功);this .dispose。; else if (e.getSource() =jb2 ) /关闭对话框this .dispose();/*(6) DelEmploy删除员工*/package com.Ma nager;import javax.swi ng.*;import java.awt.*;importpublic class DelEmployexte ndsPanel impleme nt。

40、s Acti on Liste ner JTable jt ;JScrollPane jsp ;JButtonjb1 , jb2 ;JPanel jp1 , jp2 ;JLabel jl1 ;EmployModel em;public DelEmploy() / 北部jl1 = new JLabel( 删除员工 “ ,JLabel. CENTER);jl1 .setFont(new Font(黑体 “ ,Font. BOLD, 30);jp2 = new JPa nel();jp2 .add( jl1 );/ 中部em = new EmployModel();Stri ng paras = 1。

41、 ;em.queryEmploy(select * from Employi nfo where 1 = ?, paras);jt = new JTable( em);jsp = new JScrollPane(jt );/ 南部jp1=new JPa nel();jb1=new JButt on(删除);jb2=new JButt on(取消);jb1.addActi on Liste ner(this);jp1.add( jb1 );jp1.add( jb2 );this.setLayout(newBorderLayout。);this.add( jp2 , BorderLayout.NO。

42、RTH);this.add( jsp , BorderLayout.CENTER);this.add( jp1 , BorderLayout.SOUTH);public void acti on Performed(Acti on Eve nt e) if (e.getSource() =jb1 ) / 返回用户点中的行int rowNum = this . jt .getSelectedRow();if (rowNum = -1) JOptionPane.showMessageDialog (this ,请选择一行);return ;/得到学生编号Stri ng Emp no = (Stri。

43、 ng)em.getValueAt(rowNum, 0);/删除记录的sql语句Stri ng sql =delete from Employi nfo where Emp no = ?Stri ng paras = Emp no ;EmployModel temp =new EmployModel();temp.updEmploy(sql, paras);/删除员工成功后,更新员工表em = new EmployModel();Stri ng paras1 = 1 ;,parasl);em.queryEmploy(select * from Employi nfo where 1 = ?jt。

44、 .setModel( em);(7)AllEmploy*遍历所有员工*/ package com.Ma nager;import java.awt.*;importjavax.swi ng.*;public class AllEmploy exte nds Pan elEmployModel em;JTable jt ;JScrollPa nejspJLabeljl1 ;JPaneljp ;public AllEmploy()/北部jp = new JPa nel();jl1 = new JLabel( 全体员工 “,JLabel. CENTER); jl1 .setFont( new Fo。

45、nt(黑体 “ ,Font. BOLD, 30); jp .add( jl1 );/中部em = new EmployModel();,paras);String paras =1;em.queryEmploy( select * from Employi nfo where 1 = ? jt = new JTable( em);jsp = new JScrollPane( jt );this .setLayout( new BorderLayout();this .add( jp ,BorderLayout. NORTH);this .add( jsp ,BorderLayout. CENT。

46、ER);(8) Examine*员工考核界面*/package com.Ma nager;import java.awt.*;importimportimport ;import java.sql.*;import javax.swi ng.*;public class Examine exte nds Panel impleme ntsActi on Liste ner JLabel jl1,jl2,jl3 ,jl4JTable jt ;JScrollPa nejspJJTextFieldjtfl,jtf2JChoice ch ;JButt onjb1,jb2JJPa nel jp1,jp2。

47、,jp3 ,jp4AppraisalModelam;SqlHelpersqh ;publicExam in e() / 北部为标题文字jp4 = new JPa nel();jl1 = new JLabel( 员工考核 “ ,JLabel. CENTER); jl1 .setFont(new Font(黑体 “ ,Font. BOLD, 30);jp4 .add( jl1 );/ 中部am = new AppraisalModel();am.queryAppraisal(I!selectE.Emp no ,E.E name,A.C on seque nce,A.RegDatefrom+ Emp。

48、loyi nfo as E,Appraisal as A where E.Emp no=A.Emp no);jt = new JTable( am);jsp = new JScrollPane( jt );/ 监听jtable点击表格时获取点击的行数并通过鼠标点击事件给jtf1 , jtf2 赋值jt .addMouseListener(new MouseAdapter() public void mouseClicked(MouseEve nt e) int rowNum = jt .getSelectedRow();jtf1.setText(Stri ng)am.getValueAt(ro。

49、wNum, 0);jtf2.setText(Stri ng)am.getValueAt(rowNum, 1););jl2=new JLabel(工号:“);jl3=new JLabel(姓名:“);jl4=new JLabel(考核);jtf1=new JTextField(10);jtf2=new JTextField(10);jtf1.setEditable(false );jtf2.setEditable(false );/实例单选框组件,并赋值ch=new Choice();ch.add(未考核);ch.add(不合格);ch.add(合格);ch.add(优秀“);jp1=new J。

50、Pa nel();jp1.add( jl2 );jp1.add( jtf1 );jp1.add( jl3 );jp1.add( jtf2 );jp1.add( jl4 );jp1.add( ch);jp2=new JPa nel(new BorderLayout。);jp2 .add( jsp , BorderLayout.CENTER);jp2 .add( jp1 , BorderLayout.SOUTH);/ 南部jb1 = new JButton( 确认“); jb2 = new JButton( 刷新“);jp3=new JPa nel();jbl.addActi on Liste n。

51、er(this);jb2.addActi on Liste ner(this);jp3.add( jbl );jp3.add( jb2 );this.setLayout(new BorderLayout();this.add( jp4 , BorderLayout.NORTH);this.add( jp2 , BorderLayout.CENTER);this.add( jp3 , BorderLayout.SOUTH); public ifacti on Performed(Acti on Eve nt e) (e.getSource()=Stri ng Emp no =Stri ng En。

52、 ame =String Con seque nce =/先获取上次考核记录Stri ng sql =select Con seque nce from Appraisal where Emp no =?Stri ng paras = Emp no ;String Oldl nfo =“;try sqh = new SqlHelper();ResultSet rs =sqh .queryExecute(sql, paras);voidjtfljtf2jb1 ) .getText();.getText();ch .getSelectedltem();rs.n ext();Oldl nfo = r。

53、s.getStri ng(1); catch(Excepti on e1) e1.pri ntStackTrace();fin allysqh .close();/对考核表进行修改修改考核记录的sql语句String sql1 =update Appraisal set Con seque nee = ? where Emp no =?String parasl = Consequenee, Empno;AppraisalModel temp =new AppraisalModel();if(temp.updAppraisal(sql1, parasi) JOptionPane.showMessageDialog (this ,考核成功);再把上次考核记录以及本次操作记录插入到history 表中Stri ng sql2 =insert into History(Emp no,E name,Oldl nfo,Newl nfo)values(?,?,?,?);String paras2 = Empno, Ename, Oldlnfo, Consequence ;AppraisalModel tempi =new AppraisalModel();temp1.up。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值