版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、人事管理系统 TOC o 1-5 h z 系统需求分析:2系统的功能设计2系统功能结构2数据库设计2功能模块开发3查询人员信息界面 3添加员工界面3修改员工信息界面 4删除员工界面5员工考核界面5)员工考核历史记录界面 6各个类说明6程序代码9 HYPERLINK l bookmark32 o Current Document (1 )Manager 9 HYPERLINK l bookmark24 o Current Document CardEmploy 11SelEmploy 12AddEmploy 14ReviseEmploy 16UpdDialog 18DelEmploy 21All
2、Employ 23Examine 24History 27EmployModel 29AppraisalModel 30SqlHelper 33(1)iii人员考核管理,员 考 极基本信息,管理考核历史查诙系统需求分析 系统的功能设计员工信息管理:员工信息管理包括对员工基本信息和情况进行查询、添加、删除和修改及部门管理员工考核管理:包括对员工的考核情况进行操作,还可以对历史考核 情况进行浏览系统功能结构人事管理的系统结构功能结构如图所示:人事管埋系统3(3)数据库设计员工基本表(Employinfo)名称字段名称数据类型主键非空工号Empnovarchar (10)YesYes姓名Enamev
3、archar (10)Noyes性别Sexvarchar (4)Noyes出生年月BirthdayDatetimeNoYes部门DeptNoChar (10)NoYes职务EjobChar (20)NoYes工资SalfloatNoYes员工考核表(Appraisal)名称字段名称数据类型主键非空工号Empnovarchar (10)yesyes考核Consequencevarchar (10)noyes变更日期RegDatedatetimeNoYes考核历史记录(History )名称字段名称数据类型主键非空流水号JourNoIntYesyes工号Empnovarchar (10)noyes
4、姓名Enamevarchar (10)NoYes上次考核OldInfovarchar (10)NoYes本次考核NewInfovarchar (10)NoYes变更日期RegDatedatetimeNoYes功能模块开发(1)查询人员信息界面实例一个SelEmploy类,当点击“查询”时调用EmployModel类的queryEmploy方法实现查询(2)添加员工界面实例一个 AddEmploy类当点击“添加”时调用 EmployModel类的updEmploy方法实现添加功能(3)修改员工信息界面实例一个ReviseEmploy类当点击“修改”时,先调用UpdDialo弹跳由一个修改信息对话
5、框,信息修改完毕后,调用EmployModel类的updEmploy方法实现修改功能(4)删除员工界面实例一个DelEmploy类当点击“删除时调用EmployModel类的updEmploy方法实现删除功能(5)员工考核界面实例一个Examine类当点击“确认”时调用 AppraisalModel类的updAppraisal方法来完成考核功能(6)员工考核历史记录界面实例一个 History 类当点击时调用 AppraisalModel类的updAppraisal方法来完成考核功能三.各个类说明类之间的关系图:ManagerEmpluyMnciel |AppraisaiModeiSqlHe巾
6、引M anager类Manager类的一个实例,从而生成了人事管理系统的界面,用JSpHtPane类将整个界面分为左右两个部分。其中左侧实现了人事管理系统的功能树,采用JTree类构建,同时实现了 TreeSelectionListener接口,定义了该接口所必 须实现的 valueChanged (TreeSelectionEvent e 方法,JSplitPane右边力口入卡 片布局CardEmploy类。当JTree的TreeSelectionEvent事件发生时,调用 CardEmploy的c。show方法切换不同卡片,实现不同的管理界面.CardEmploy 类CardEmploy为
7、卡片布局类的面板,主要功能是添加各个界面的卡片,当 JTree的TreeSelectionEvent事件发生时。切换不同的卡片EmployModel、AppraisalModel 类这两个类继承了 AbstractTableModel,主要实现的功能是,存放调用sqlhelper类得到的数据。可以通过调用 sqlhelper实现增删查改功能SqlHelpe r 类主要就是连接数据库的一些基础操作 是,方便代码修改,重复使用SelEmplo y这个类继承Panel,为“查t员工”的界面.实现了 Actionlistener接口,当ActionEvent 事件发生时,调用 EmployModel
8、类的 queryEmploy 方法实现查询AddEmploy、ReviseEmploy、DelEmploy 类这些类继承Pane,分别为“添加员工信息” “修改员工信息” “删除员工信息” 的界面,这些类实现了 Actionlistener接口,当ActionEvent事件发生时,调用EmployModel类的updEmploy方法实现添加、查询、删 除、功能Examine 类这个类继承Panel,为“考核员工”界面。 这个类实现了 Actionlistener接 口,当ActionEvent事件发生时,(1)先通过调用 AppraisalModel的 queryAppraisal获取上次考核
9、成绩,(2)修改Appraisal表的考核成绩(3) 再把上次考核成绩跟本次考核成绩加到 History表中History这个类主要是把History表中的信息显示到界面上.四.程序代码Managerpackage com。Manager ;importjava.awt.*;import importjavax.swing.*javax.swing。;event 。TreeSelectionEvent;importjavax 。swing。event 。TreeSelectionListener;import importjavax.swing.tree。*java 。awt。event 。*
10、;publicclass Manager_ extendsJFrame implementsTreeSelectionListener JPanel jp ;JSplitPane js ;JScrollPane jsp ;JTree tree ;DefaultMutableTreeNoderoot , t1 , t2 , t1_1 , t1_2 , t1_3 , t1_4 , t1_5 ,t2_1 , t2_2 ;CardEmploy ae ;EmployModel em;public static void main (String 口 args) Manager manager = new
11、 Manager ();public/Manager ()给树的各个结点赋值root = new DefaultMutableTreeNode(人事管理系统”);t1 = new DefaultMutableTreeNode基本信息管理”);t1_1 = new DefaultMutableTreeNode t1_2 = new DefaultMutableTreeNode( t1_3 = new DefaultMutableTreeNode t1_4 = new DefaultMutableTreeNode( t15 = new DefaultMutableTreeNode(查询员工);添加
12、员工”);(修改员工信息”); ”删除员工资料”); (查询全体员工”);t2 = new DefaultMutableTreeNode(人员考核管理);t2 1new DefaultMutableTreeNode(t2_2new DefaultMutableTreeNode(考核历史查询”) TOC o 1-5 h z t1。add(t1_1);t1。add(t1_2);t1 .add( t1_3 );t1 .add (t1_4 );t1 .add (t1_5 );t2oadd(t2_1);t2oadd(t2_2);root .add( t1 );root 。 add (t2 );tree
13、= new JTree(root );/对树进行监听tree 。addTreeSelectionListener(this );/ 实例化 CardEmploy面板并加到jsplitpane 的边ae = new CardEmploy( );js = new JSplitPane( );js。setLeftComponent(tree );js .setRightComponent(ae );this 。getContentPane ()。add( js );this 。setTitle (人事管理系统”);this 。 setVisible (true );this o setSize (6
14、00 , 500 );this o setDefaultCloseOperation(JFrame 。EXIT_ON_CLOSE ); public void valueChanged(TreeSelectionEvent e) /获取点击结点名称DefaultMutableTreeNode dpath =(DefaultMutableTreeNode ) tree.getLastSelectedPathComponent();/通过点击不同结点切换不同界面if (dpath 。equals (t1_1 ) ) ae o c。show( ae , 1);(t1_2 ) else if (dpa
15、th 。 equals ae。c.show( ae ,2);10 elseif (dpath 。equals(t1_3ae。c。 show( ae, 3); elseif (dpath 。equals(t1_4ae。c.show( ae , 4); elseif (dpath.equals(t1_5 )ae。c。show (ae , 5); elseif (dpath 。equals(t2_1)ae . c。show (ae , 6); else if (dpath 。 equals (t2_2ae。c.show( ae ,7 );)CardEmploy/ * *用卡片布局设置各个界面* /p
16、ackage com。Manager;import javax.swing 。 *;import java.awt 。* ;public class CardEmployextends PanelCardLayout c;/查询表SelEmploy selE ;/添加表AddEmploy addE ;/修改员工信息表ReviseEmploy revE ;/删除员工表格DelEmploy delE ;/所有员工信息AllEmploy allE/员工考核表ExamineexaE ;/历史记录界面HistoryHis ;11public CardEmploy ()/查询员工表selE = new S
17、elEmploy ();/添加员工表addE = new AddEmploy ();/修改员工信息r evE = new ReviseEmploy( );/删除员工表格delE = new DelEmploy ();/所有员工信息allE = new AllEmploy ();/员工考核表exaE = new Examine() ;/历史记录界面His = new History ();JPanel jp =new JPanel( );/ /定义cardemploy面板 为卡片布局/把各个面板加入到 C的卡片布局中c =new CardLayout();t his。setLayout(c);t
18、 his。add(selE,“1 );t his.add(addE ,2);t his。add(revE,3);t his.add(delE,” 4)t his。add(allE, 5);t his.add(exaE, 6”);t his.add(His , ”7”);(3)SelEmploy/ *12* SelEmploy 类设置查询员工界面* /package com.Manager ;import java.awt 。* ;importjavax.swing. * ;importjava.awt。event 。* ;public class SelEmploy extends Panel
19、 implements ActionListener EmployModel em;JLabel jl ;JTextField jtf ;JButton jb ;JTable jt ;JScrollPane jsp ;JPanel jp1 ;public SelEmploy ()/北部 jp1 = new JPanel (); jl = new JLabel(输入员工号:”);jtf = new JTextField (20); jb = new JButton (查询);/ 对查询按钮监听jb .addActionListener(this ); TOC o 1-5 h z jp1.add(
20、jl);jp1.add(jtf);jp1.add(jb);/ 中部em = new EmployModel() ;String 口 paras = 1 ;where 1 = ? , paras );em。queryEmploy( select * f rom Employinfo jt = new JTable( em);jsp = new JScrollPane (jt );this 。setLayout (new BorderLayout() );this 。add (jp1 , BorderLayout 。NORTH);this .add (jsp , BorderLayout。CENT
21、ER);public void actionPerformed (ActionEvent e ) 13if (e 。getSource( ) = jb )String name = this . jtf .getText() 。trim ();”;String sql = select * from Employinfo where Empno =String paras = name ;em = new EmployModel ();em。queryEmploy (sql, paras) ;/查找成功更新表jt .setModel(em);(4)AddEmploypackage com.Ma
22、nager;import java 。awt. *import javax 。swingimport javaawt。event.public class AddEmploy extends Panel implements ActionListenerJLabel jl, jl1, jl2, jl3 ,jl4 , jl5, jl6 , jl7;JButton jb1 , jb2 ;JTextField jtf1, jtf2 , jtf3, jtf4 ,jtf5, jtf6,jtf7 ;JPanel jp1 , jp2 , jp3 , jp4 ;EmployModel em; TOC o 1-
23、5 h z public AddEmploy ()jl1=new JLabel(工号:);jl2=new JLabel(姓名:”);jl3=new JLabel(性别:”);jl4=new JLabel(出生年月:”jl5=new JLabel(“部门:”);jl6=new JLabel(职位:)jl7=new JLabel(工资:); TOC o 1-5 h z jtf1=new JTextField(20 );jtf2=new JTextField(20);jtf3=new JTextField(20);jtf4=new JTextField(20);14 jtf5 = new JText
24、Field (20);jtf6 = new JTextField(20) jtf7 = new JTextField (20);jb1 = new JButton(添加);jb2 = new JButton(取消);/监听添加取消按钮jb1 。addActionListener( this );jb2 .addActionListener(this ); TOC o 1-5 h z jp1=newJPanel(newGridLayout(7,1);jp2=newJPanel(newGridLayout(7,1);jp3=newJPanel();jp1 .add(jl1);jp1 .add(jl
25、2 );jp1 。addjl3);jp1 。 add(jl4);jp1 .addjl5);jp1 。add(jl6);jp1 。 add(jl7);jp2 .addjtf1);jp2。add(jtf2);jp2 。 add(jtf3);jp2 。 add(jtf4);jp2 。 addjtf5);jp2 .addjtf6);jp2 。 add(jtf7);jp3。add (jb1 );jp3 .add(jb2 );jp4 = new JPanel new BorderLayoutjp4。add (jp1 , BorderLayout. WEST);jp4 .add(jp2 , BorderLa
26、yout 。EAST);jp4 o setSize (300 , 300 );this 。setLayout( new FlowLayout ();this 。 add (jp4 );this .add( jp3 );15public void actionPerformed(ActionEvent e)if (e.getSource () = jb1 ) / 调用EmployModel 里的updEmploy 方法,实现对表格的添加 String sql = insert into Employinfo values (?, ?,?, ?, ?,?, ?) ;String paras = j
27、tfl 。getText( ) , jtf2 。getText (), jtf3 c getText (), jtf4 。getText () , jtf5 。getText (), jtf6 .getText() , jtf7 .getText ();em = new EmployModel ();if (em.updEmploy (sql, paras ) )/当添加新员工成功时,则弹出”添加成功的对话框JOptionPane.showMessageDialogt this,添加成功); else if ( ! em。updEmploy(sql, paras ) )JOptionPane.
28、showMessageDialog(this,添加失败”);)/当新员工加入成功后,要把新加入员工的工号加到考核表AppraisalModel temp =new AppraisalModel ();String sqll = insert into Appraisal(Empno) values (?) TOC o 1-5 h z String parasl = jtfl 。getText() ;temp.updAppraisal (sqll, parasl ); else if (e。getSource () = jb2) jtfl。setText();jtf2。setText();jtf
29、3。setText();jtf4.setText();jtf5osetText( ”);jtf6osetText( ”);jtf7。setText( );(5) ReviseEmploypackage com。Manager;16/ *修改员工界面* /importjava。awt。* ;import java.awt 。event 。* ;importjavax。swing.* ;public class ReviseEmploy extends Panel implements ActionListener JTable jt ;JScrollPanejsp ;JButton jb1 ,
30、jb2 ;JPaneljp1 , jp2 ;EmployModelem;JLabeljl1 ;public ReviseEmploy () jl1 = new JLabel (修改员工信息 ”,JLabel 。 CENTER);jl1 .setFont( new Font(宋体,Font 。BOLD, 28);jp2 = new JPanel();jp2。add (jl1 );em = new EmployModel( );String paras = 1 ;paras );em。queryEmploy ( select * from Employinfo where 1 = ?jt = ne
31、w JTable(em);jsp = new JScrollPane (jt );jb1 = new JButton(修改);jb2 = new JButton(刷新”);/ 对两个按钮进行监听jb1 .addActionListener(this );jb2 .addActionListener(this );this 。 setLayout (new BorderLayout ();jp1 = new JPanel ();jp1 。add (jb1 );jp1 。 add( jb2 );this。add(jp2,BorderLayouto NORTH);this。add(jsp,Borde
32、rLayout.CENTER);this。add(jp1,BorderLayouto SOUTH);17 TOC o 1-5 h z public void actionPerformed (ActionEvent e )if (e.getSource () = jb1 ) int rowNum = this . jt .getSelectedRow();if (rowNum = T)JOptionPane. showMessageDialog (this , ”请选择一行 ”); return ;/ 弹出修改对话框new UpdDialog( em, rowNum) ; else if (e
33、 。 getSource() = jb2 ) /刷新修改界面中的表格em = new EmployModel( );String paras1 = 1 ;em。queryEmploy ( select * from Employinfo where 1 =iparasl );jt。setModel( em); )i UpdDialogpackage com.Manager;/ * *弹出修改界面*/import javax 。swing 。* ;import java 。awt.* ;import java 。awt。event 。* ;public class UpdDialog exten
34、ds JDialog implements ActionListenerJLabel jl1 , jl2 , jl3 , jl4 , jl5 , jl6 , jl7 ;JButton jb1 , jb2 ;JTextField jtf1 , jtf2 , jtf3 , jtf4 , jtf5 , jtf6 , jtf7 ;JPanel jp1 , jp2 , jp3 ;public UpdDialog (EmployModel em , int rowNums) jl1 = new JLabel(工号:);jl2 = new JLabel(姓名:”);18jl3=new JLabel(性别:”
35、);jl4=new JLabel(”出生年月:jl5=new JLabel(部门:”);jl6=new JLabel(职位:);jl7=new JLabel(“工资:”);jtf1jtf2=new JTextField(20)new JTextField;(30);jtf3=new JTextField(30);jtf4=new JTextField(30);jtf5=new JTextField(30);jtf6=new JTextField(30);jtf7=new JTextField(30);/ 初始化jtextfield 数据jtfl 。setText( (String ) em.g
36、etValueAt (rowNums , 0); TOC o 1-5 h z jtfl 。setEditable(false);jtf2 。setText(String ) em.getValueAt (rowNums, 1);jtf3 .setText (String ) em.getValueAt(rowNums , 2 );jtf4。setText(String) em。getValueAt(rowNums, 3);jtf5 。setText (String) em 。getValueAt (rowNums , 4);jtf6。setText(String) em。getValueAt(
37、rowNums, 5);jtf7 。setText( (String) em.getValueAt(rowNums , 6 );jb1 = new JButton(修改);jb2 = new JButton(取消);/对两个按钮监听jb1 。addActionListener(this );jb2。addActionListener(this ); TOC o 1-5 h z jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();/设置布局jp1 。 setLayout (new GridLayout (7, 1);jp2。setLayout( new
38、 GridLayout (7, 1 );/添加组件 TOC o 1-5 h z jp1。add(jl1);jp1。add(jl2);jp1。add(jl3);jp1 .add (jl4 );19jp1。add (jl5 );jp1 .addjp1 .add(jl6 );jl7 );jp2 。 add(jtfl );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 ,
39、 BorderLayouto WEST)this。add( jp2 , BorderLayout.CENTER)this。add(jp3 , BorderLayout.SOUTH)this .setSize (300 , 250);this 。setVisible (true );this .setLocation(200 , 200);this 。addWindowListener( new WindowAdapter( )public void windowClosing(WindowEvent e)dispose() ;); TOC o 1-5 h z public void actio
40、nPerformed (ActionEvent e )if (e。getSource( ) = jb1 )/修改员工信息的 sql 语句,paras为待注入的值String sql = update Employinfo set ”Ejob+ Ename = ? , Sex =? ,Birthday = ?, DeptNo = ?,=? ,Sal= ? where Empno = ?”;String 口 paras = jtf2 。getText () , jtf3 .getText (), jtf4 .getText (),jtf5 。getText () , jtf6 .getText (
41、) , jtf7 。getText jtfl 。getText ();EmployModel temp = new EmployModel();/如果修改语句运行成功则弹出修改成功”对话框20(6)/*if (temp 。updEmploy(sql , paras ) )JOptionPane 。showMessageDialog t this ,修改成功);this else/this。dispose() ;if (e 。getSource关闭对话框()=jb2 ) .dispose(DelEmploy*删除员工packagecom.Manager ;importjavaxswing. *
42、;importimportjava.awtjava.awt* ;event*;publicclassDelEmployextendsPanel implements ActionListenerJTable jtJScrollPaneJButtonjsp ;jb1 , jb2 ;JPanelJLabeljp1 , jp2 ;jl1 ;EmployModel em;public/DelEmploy ()北部jl1 jl1 jp2 jp2new.setFontnewJLabel(new JPanel(.add( jl1 );删除员工,JLabelFont/中部em = new EmployMode
43、l(黑体,Font.CENTER);BOLD, 30 );21String paras = 1 ;em。queryEmploy (select * from Employinfo where 1 = ?, paras);jt = new JTable( em);jsp = new JScrollPane( jt );/南部jp1= new JPanel();jb1 = new JButton( 删除”);jb2= new JButton(取消);jb1.addActionListener(this);jp1。 add (jb1 );jp1。add (jb2 );this 。setLayout(
44、 new BorderLayout ();this .add (jp2 , BorderLayout 。NORTH);this .add (jsp , BorderLayout.CENTER);this 。add( jp1 , BorderLayout。SOUTH);public void actionPerformed (ActionEvent e) if (e。getSource () = jb1 )/ 返回用户点中的行int rowNum = this 。jt 。getSelectedRow ();if (rowNum = T ) JOptionPane 。 showMessageDia
45、log (this , ”请选择一行“); return ;/ 得到学生编号String Empno =(String ) em.getValueAt(rowNum , 0 );/ 删除记录的sql语句String sql = delete from Employinfo where Empno =?;String 口 paras = Empno ;EmployModel temp = new EmployModel (); temp。updEmploy (sql , paras );/ 删除员工成功后,更新员工表em = new EmployModel ();String 口 paras1
46、= 1 ;em。queryEmploy( select * from Employinfo where 1 = ? , paras1 );jt .setModel(em);22AllEmploy/* *遍历所有员工* /package com.Manager;importjava.awt. * ;importjavax 。swing 。* ;public class AllEmploy extends PanelEmployModelem;JTable jt ;JScrollPanejsp ;JLabeljl1 ;JPaneljp ;public AllEmploy () /北部jp = ne
47、w JPanel ();jl1 = new JLabel(“全体员工,JLabel. CENTER);jl1 。setFont (new Font (黑体,Font 。BOLD, 30);jp。add( jl1 );/中部em = new EmployModel ();,paras );String paras =1 ;em.queryEmploy ( select * from Employinfo where 1 = ?jt = new JTable(em);jsp = new JScrollPane( jt );this .setLayout( new BorderLayout ();t
48、his 。add (jp ,BorderLayout 。NORTH);this 。add (jsp ,BorderLayout. CENTER);23Examine/ * *员工考核界面ActionListener package com。Manager ;importjava 。awt。* ;importjava 。awt。event 。* ;importjava.sql。ResultSet ;importjava.util。Vector ;importjava.sql.*;importjavax。swing. * ;public class Examine extends Panel im
49、plementsJLabel jl1JTable jt ;JScrollPaneJTextFieldChoice ch ;JButton jb1JPanel jp1AppraisalModeljl2jsp ;jtf1 ,jb2jp2 ,jl3 , jl4jtf2 ;jp3 , jp4am;SqlHelper sqh ; TOC o 1-5 h z public Examine( )/北部为标题文字jp4 = new JPanel();jl1 = new JLabel(员工考核,JLabel. CENTER);jl1 o setFont (new Font(黑体,Font. BOLD, 30);
50、jp4 。add (jl1 );/ 中部am = new AppraisalModel );Ao);am.queryAppraisal ( select E 。Empno,E。Ename , A.Consequence RegDate from ”+ “ Employinfo as E,Appraisal as A where E.Empno=A.Empno jt = new JTable (am);jsp = new JScrollPane (jt );/监听jtable点击表格时获取点击的行数并通过鼠标点击事件给jtf1,jtf2赋值24jt 。addMouseListener (new
51、MouseAdapter () public void mouseClicked(MouseEvent e)int rowNum = jt 。getSelectedRow( );jtf1 。setText(String ) am。getValueAt (rowNum , 0 );jtf2 .setText ( (String ) am.getValueAt(rowNum , 1 ););jl2 = new JLabel (工号:”);jl3 = new JLabel(姓名:);jl4 = new JLabel(考核);jtf1= new JTextField(10);jtf2= new JTe
52、xtField(10);jtf1 .setEditable( false );jtf2 。setEditable (false );/实例单选框组件,并赋值ch = new Choice ();ch。 add( 未考核”);ch。 add(不合格);ch .add(合格);ch。add (优秀”);jp1 = new JPanel();jp1 .add (jl2 );jp1 .add( jtf1 );jp1 。add( jl3 );jp1 .add( jtf2 );jp1 。add( jl4 );jp1 。 add( ch );jp2 = new JPanel(new BorderLayout
53、( );jp2。add( jsp , BorderLayout.CENTER);jp2 .add (jp1 , BorderLayout.SOUTH);/ 南部jb1 =new JButton(“确认”);jb2 =new JButton(刷新”);jp3 =new JPanel);jb1 。addActionListenert this );jb2 。addActionListener( this );25jp3 。 add (jb1 );jp3 。 add (jb2 ); this .setLayout (new BorderLayout() );this 。add (jp4 , Bord
54、erLayout 。NORTH);this .add( jp2 , BorderLayout.CENTER);this 。add( jp3 , BorderLayout 。SOUTH);public void actionPerformed if (e 。 getSource()=String Empno =jtf1String Ename =jtf2String Consequence = / 先获取上次考核记录(ActionEvent e)jb1 ) 。getText ();。getText( );ch。getSelectedItem ();String sql = select Cons
55、equence from Appraisal where Empno=?” ;String paras = Empno ;String OldInfo =;try sqh = new SqlHelper( );(sql, paras );ResultSet rs = sqh。queryExecute rs 。 next ();OldInfo = rs 。getString (1); catch (Exception e1 )e1。printStackTrace() ; finally sqh。close() ;/对考核表进行修改修改考核记录的sql语句String sql1 = update
56、Appraisal set Consequence = ? where EmpnoString 口 paras1 = Consequence , Empno ;AppraisalModel temp =new AppraisalModel ();if (temp 。 updAppraisal (sql1 , paras1 ) )JOptionPane 。 showMessageDialog (this ,考核成功); /再把”上次考核记录以及”本次操作记录”插入到history 表中String sql2 = insert into History( Empno,Ename , OldInfo
57、 ,26NewInfo ) values( ? ,? , ? ,?);String paras2 = Empno , Ename , OldInfo , Consequence AppraisalModel temp1 =new AppraisalModel();temp1。updAppraisal (sql2 , paras2 ); else if (e。getSource () = jb2 )/刷新员工考核表am = new AppraisalModel( );String paras3 = 1 ;am。queryAppraisal ( select E 。Empno,E.Ename ,
58、A.Consequence,A.RegDate from + “ Employinfo as E , Appraisal as A where E。Empno=AEmpnd);this . jt 。setModel (am);(9)History/ *历史记录界面*/package com.Manager ;import java 。awt。*;import java.awt.event.* ;implements ActionListener import javax.swing 。 *;public class History extends PanelAppraisalModel am;
59、JTable jt ;JScrollPane jsp ;JLabel jl1 ;JPanel jp , jp1 , jp2 ;JButton jb1 , jb2 ;public History )/北部jp = new JPanel ();27jl1 = new JLabel(”员工考核历史记录 ”,JLabel 。CENTER);jl1 .setFont (new Font(黑体,Font 。 BOLD, 30 );jp .add( jl1 );/ 中部am = new AppraisalModel ();String 口 paras = 1 ;am.queryHistory (select
60、 * from History where 1 =? , paras );jt = new JTable(am);jsp = new JScrollPane (jt );/ 南部jp2 = new JPanel ();jb1 = new JButton(清空);jb2 = new JButton(刷新);jb1 。addActionListener(this );jb2 .addActionListener(this ) ;jp2。add (jb1 );jp2。add (jb2 );this 。 setLayout (new BorderLayout ();this .add (jp , Bo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心理咨询员报考条件
- 二零二四年度股权投资合同标的投资额度3篇
- 二零二四年文化艺术交流与推广合同
- 二零二四年度出版合同
- 2024存量住宅装修设计合同
- 二零二四年度环保产业技术合作合同
- 二零二四年度数据中心装修工程安全标准合同
- 二零二四年智能电网用特种电缆订购合同
- 二零二四年度新能源汽车采购代理合同
- 存量航空器材租赁合同04年专用
- CJT233-2016 建筑小区排水用塑料检查井
- CJJT135-2009 透水水泥混凝土路面技术规程
- (高清版)JTGT 3650-01-2022 公路桥梁施工监控技术规程
- 人工智能基础与应用(第2版)全套教学课件
- 高教版【中职专用】《中国特色社会主义》期末试卷+答案
- 2024年《宪法》知识竞赛必背100题题库带解析附答案(完整版)
- 医药公司质量负责人变更专项内审
- 江苏省2024年中职职教高考文化统考语文答案
- 2024年高考语文标点符号的基本用法大全(新标准)
- 入职申请表(完整版)
- 深基坑土方开挖专家论证方案样本
评论
0/150
提交评论