




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
人事管理系統(tǒng)一.系統(tǒng)需求分析:2〔1〕系統(tǒng)的功能設計2〔2〕系統(tǒng)功能結構2〔3〕數(shù)據(jù)庫設計2二.功能模塊開發(fā)3〔1〕查詢?nèi)藛T信息界面3〔2〕添加員工界面3〔3〕修改員工信息界面4〔4〕刪除員工界面5〔5〕員工考核界面5〔6〕員工考核歷史記錄界面6三.各個類說明6四.程序代碼9〔1〕Manager9〔2〕CardEmploy11〔3〕SelEmploy12〔4〕AddEmploy14〔5〕ReviseEmploy16iUpdDialog18〔6〕DelEmploy21〔7〕AllEmploy22〔8〕Examine23〔9〕History27〔10〕EmployModel28〔11〕AppraisalModel30〔12〕SqlHelper33一.系統(tǒng)需求分析:系統(tǒng)的功能設計員工信息管理:員工信息管理包括對員工根本信息和情況進行查詢、添加、刪除和修改及部門管理員工考核管理:包括對員工的考核情況進行操作,還可以對歷史考核情況進行瀏覽系統(tǒng)功能結構人事管理的系統(tǒng)結構功能結構如下圖:數(shù)據(jù)庫設計員工根本表〔Employinfo〕名稱字段名稱數(shù)據(jù)類型主鍵非空工號Empnovarchar(10)YesYes姓名Enamevarchar(10)Noyes性別Sexvarchar(4)Noyes出生年月BirthdayDatetimeNoYes部門DeptNoChar(10)NoYes職務EjobChar(20)NoYes工資SalfloatNoYes員工考核表〔Appraisal〕名稱字段名稱數(shù)據(jù)類型主鍵非空工號Empnovarchar(10)yesyes考核Consequencevarchar(10)noyes變更日期RegDatedatetimeNoYes考核歷史記錄〔History〕名稱字段名稱數(shù)據(jù)類型主鍵非空流水號JourNoIntYesyes工號Empnovarchar(10)noyes姓名Enamevarchar(10)NoYes上次考核OldInfovarchar(10)NoYes本次考核NewInfovarchar(10)NoYes變更日期RegDatedatetimeNoYes功能模塊開發(fā)查詢?nèi)藛T信息界面實例一個SelEmploy類,當點擊“查詢〞時調(diào)用EmployModel類的queryEmploy方法實現(xiàn)查詢添加員工界面實例一個AddEmploy類當點擊“添加〞時調(diào)用EmployModel類的updEmploy方法實現(xiàn)添加功能修改員工信息界面實例一個ReviseEmploy類當點擊“修改〞時,先調(diào)用UpdDialo彈跳出一個修改信息對話框,信息修改完畢后,調(diào)用EmployModel類的updEmploy方法實現(xiàn)修改功能刪除員工界面實例一個DelEmploy類當點擊“刪除〞時調(diào)用EmployModel類的updEmploy方法實現(xiàn)刪除功能員工考核界面實例一個Examine類當點擊“確認〞時調(diào)用AppraisalModel類的updAppraisal方法來完成考核功能員工考核歷史記錄界面實例一個History類當點擊時調(diào)用AppraisalModel類的updAppraisal方法來完成考核功能各個類說明類之間的關系圖:Manager類Manager類的一個實例,從而生成了人事管理系統(tǒng)的界面,用JSplitPane類將整個界面分為左右兩個局部。其中左側實現(xiàn)了人事管理系統(tǒng)的功能樹,采用JTree類構建,同時實現(xiàn)了TreeSelectionListener接口,定義了該接口所必須實現(xiàn)的valueChanged(TreeSelectionEvente)方法,JSplitPane右邊參加CardEmploy類。當JTree的TreeSelectionEvent事件發(fā)生時,調(diào)用CardEmploy的c.show方法切換不同卡片,實現(xiàn)不同的管理界面。CardEmploy為卡片布局類的面板,主要功能是添加各個界面的卡片,當JTree的TreeSelectionEvent事件發(fā)生時。切換不同的卡片這兩個類繼承了AbstractTableModel,主要實現(xiàn)的功能是,存放調(diào)用sqlhelper類得到的數(shù)據(jù)??梢酝ㄟ^調(diào)用sqlhelper實現(xiàn)增刪查改功能r類主要就是連接數(shù)據(jù)庫的一些根底操作是,方便代碼修改,重復使用y這個類繼承Panel,為“查詢員工〞的界面。實現(xiàn)了Actionlistener接口,當ActionEvent事件發(fā)生時,調(diào)用EmployModel類的queryEmploy方法實現(xiàn)查詢這些類繼承Pane,分別為“添加員工信息〞“修改員工信息〞“刪除員工信息〞的界面,這些類實現(xiàn)了Actionlistener接口,當ActionEvent事件發(fā)生時,調(diào)用EmployModel類的updEmploy方法實現(xiàn)添加、查詢、刪除、功能這個類繼承Panel,為“考核員工〞界面。這個類實現(xiàn)了Actionlistener接口,當ActionEvent事件發(fā)生時,(1)先通過調(diào)用AppraisalModel的queryAppraisal獲取上次考核成績,(2)修改Appraisal表的考核成績〔3〕再把上次考核成績跟本次考核成績加到History表中這個類主要是把History表中的信息顯示到界面上。程序代碼Managerpackagecom.Manager;importjava.awt.*;importjavax.swing.*;importjavax.swing.event.TreeSelectionEvent;import;importjavax.swing.tree.*;import.*;publicclassManagerextendsJFrameimplementsTreeSelectionListener{ JPaneljp; JSplitPanejs; JScrollPanejsp;JTreetree; DefaultMutableTreeNoderoot,t1,t2,t1_1,t1_2,t1_3,t1_4,t1_5,t2_1,t2_2; CardEmployae; EmployModelem;publicstaticvoidmain(String[]args){ Managermanager=newManager(); }publicManager(){//給樹的各個結點賦值root=newDefaultMutableTreeNode("人事管理系統(tǒng)");t1=newDefaultMutableTreeNode("根本信息管理");t1_1=newDefaultMutableTreeNode("查詢員工");t1_2=newDefaultMutableTreeNode("添加員工");t1_3=newDefaultMutableTreeNode("修改員工信息");t1_4=newDefaultMutableTreeNode("刪除員工資料");t1_5=newDefaultMutableTreeNode("查詢?nèi)w員工");t2=newDefaultMutableTreeNode("人員考核管理");t2_1=newDefaultMutableTreeNode("人員考核");t2_2=newDefaultMutableTreeNode("考核歷史查詢");t1.add(t1_1);t1.add(t1_2);t1.add(t1_3);t1.add(t1_4);t1.add(t1_5);t2.add(t2_1);t2.add(t2_2);root.add(t1);root.add(t2);tree=newJTree(root);//對樹進行監(jiān)聽tree.addTreeSelectionListener(this);//實例化CardEmploy面板并加到jsplitpane的邊ae=newCardEmploy();js=newJSplitPane();js.setLeftComponent(tree);js.setRightComponent(ae);this.getContentPane().add(js);this.setTitle("人事管理系統(tǒng)");this.setVisible(true);this.setSize(600,500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }publicvoidvalueChanged(TreeSelectionEvente){//獲取點擊結點名稱 DefaultMutableTreeNodedpath=(DefaultMutableTreeNode)tree .getLastSelectedPathComponent();//通過點擊不同結點切換不同界面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(dpath.equals(t2_1)){ae.c.show(ae,"6"); }elseif(dpath.equals(t2_2)){ae.c.show(ae,"7"); } }}CardEmploy/***用卡片布局設置各個界面*/packagecom.Manager;importjavax.swing.*;importjava.awt.*;publicclassCardEmployextendsPanel{ CardLayoutc;//查詢表 SelEmployselE;//添加表 AddEmployaddE;//修改員工信息表ReviseEmployrevE;//刪除員工表格DelEmploydelE;//所有員工信息AllEmployallE;//員工考核表ExamineexaE;//歷史記錄界面HistoryHis;publicCardEmploy(){//查詢員工表selE=newSelEmploy();//添加員工表addE=newAddEmploy();//修改員工信息revE=newReviseEmploy();//刪除員工表格delE=newDelEmploy();//所有員工信息allE=newAllEmploy();//員工考核表exaE=newExamine();//歷史記錄界面His=newHistory();JPaneljp=newJPanel();//定義cardemploy面板為卡片布局//把各個面板參加到C的卡片布局中c=newCardLayout();this.setLayout(c);this.add(selE,"1");this.add(addE,"2");this.add(revE,"3");this.add(delE,"4");this.add(allE,"5");this.add(exaE,"6");this.add(His,"7");}}SelEmploy/***SelEmploy類設置查詢員工界面*/packagecom.Manager;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassSelEmployextendsPanelimplementsActionListener{ EmployModelem; JLabeljl; JTextFieldjtf; JButtonjb; JTablejt; JScrollPanejsp; JPaneljp1;publicSelEmploy(){//北部jp1=newJPanel();jl=newJLabel("輸入員工號:");jtf=newJTextField(20);jb=newJButton("查詢");//對查詢按鈕監(jiān)聽jb.addActionListener(this);jp1.add(jl);jp1.add(jtf);jp1.add(jb);//中部em=newEmployModel(); String[]paras={"1"};em.queryEmploy("select*fromEmployinfowhere1=?",paras);jt=newJTable(em);jsp=newJScrollPane(jt);this.setLayout(newBorderLayout());this.add(jp1,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb){ Stringname=this.jtf.getText().trim(); Stringsql="select*fromEmployinfowhereEmpno=?"; String[]paras={name};em=newEmployModel();em.queryEmploy(sql,paras);//查找成功更新表jt.setModel(em); } }}AddEmploypackagecom.Manager;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassAddEmployextendsPanelimplementsActionListener{ JLabeljl,jl1,jl2,jl3,jl4,jl5,jl6,jl7; JButtonjb1,jb2; JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7; JPaneljp1,jp2,jp3,jp4; EmployModelem;publicAddEmploy(){jl1=newJLabel("工號:");jl2=newJLabel("姓名:");jl3=newJLabel("性別:");jl4=newJLabel("出生年月:");jl5=newJLabel("部門:");jl6=newJLabel("職位:");jl7=newJLabel("工資:");jtf1=newJTextField(20);jtf2=newJTextField(20);jtf3=newJTextField(20);jtf4=newJTextField(20);jtf5=newJTextField(20);jtf6=newJTextField(20);jtf7=newJTextField(20);jb1=newJButton("添加");jb2=newJButton("取消");//監(jiān)聽‘添加’‘取消’按鈕jb1.addActionListener(this);jb2.addActionListener(this);jp1=newJPanel(newGridLayout(7,1));jp2=newJPanel(newGridLayout(7,1));jp3=newJPanel();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);jp4=newJPanel(newBorderLayout());jp4.add(jp1,BorderLayout.WEST);jp4.add(jp2,BorderLayout.EAST);jp4.setSize(300,300);this.setLayout(newFlowLayout());this.add(jp4);this.add(jp3); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb1){//調(diào)用EmployModel里的updEmploy方法,實現(xiàn)對表格的添加 Stringsql="insertintoEmployinfovalues(?,?,?,?,?,?,?)"; String[]paras={jtf1.getText(),jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText(),jtf7.getText()};em=newEmployModel();if(em.updEmploy(sql,paras)){//當添加新員工成功時,那么彈出〞添加成功“的對話框 JOptionPane.showMessageDialog(this,"添加成功"); }elseif(!em.updEmploy(sql,paras)){ JOptionPane.showMessageDialog(this,"添加失敗"); }//當新員工參加成功后,要把新參加員工的工號加到考核表 AppraisalModeltemp=newAppraisalModel(); Stringsql1="insertintoAppraisal(Empno)values(?)"; String[]paras1={jtf1.getText()}; temp.updAppraisal(sql1,paras1); }elseif(e.getSource()==jb2){jtf1.setText("");jtf2.setText("");jtf3.setText("");jtf4.setText("");jtf5.setText("");jtf6.setText("");jtf7.setText(""); } }}ReviseEmploypackagecom.Manager;/***修改員工界面*/importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassReviseEmployextendsPanelimplementsActionListener{ JTablejt; JScrollPanejsp; JButtonjb1,jb2;JPaneljp1,jp2; EmployModelem;JLabeljl1;publicReviseEmploy(){jl1=newJLabel("修改員工信息",JLabel.CENTER);jl1.setFont(newFont("宋體",Font.BOLD,28));jp2=newJPanel();jp2.add(jl1);em=newEmployModel(); String[]paras={"1"};em.queryEmploy("select*fromEmployinfowhere1=?",paras);jt=newJTable(em);jsp=newJScrollPane(jt);jb1=newJButton("修改");jb2=newJButton("刷新");//對兩個按鈕進行監(jiān)聽jb1.addActionListener(this);jb2.addActionListener(this);this.setLayout(newBorderLayout());jp1=newJPanel();jp1.add(jb1);jp1.add(jb2);this.add(jp2,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);this.add(jp1,BorderLayout.SOUTH); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb1){introwNum=this.jt.getSelectedRow();if(rowNum==-1){ JOptionPane.showMessageDialog(this,"請選擇一行");return; }//彈出修改對話框newUpdDialog(em,rowNum); }elseif(e.getSource()==jb2){//刷新修改界面中的表格em=newEmployModel(); String[]paras1={"1"};em.queryEmploy("select*fromEmployinfowhere1=?",paras1);jt.setModel(em); } }}UpdDialogpackagecom.Manager;/***彈出修改界面*/importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassUpdDialogextendsJDialogimplementsActionListener{ JLabeljl1,jl2,jl3,jl4,jl5,jl6,jl7; JButtonjb1,jb2; JTextFieldjtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7; JPaneljp1,jp2,jp3;publicUpdDialog(EmployModelem,introwNums){jl1=newJLabel("工號:");jl2=newJLabel("姓名:");jl3=newJLabel("性別:");jl4=newJLabel("出生年月:");jl5=newJLabel("部門:");jl6=newJLabel("職位:");jl7=newJLabel("工資:");jtf1=newJTextField(20);jtf2=newJTextField(30);jtf3=newJTextField(30);jtf4=newJTextField(30);jtf5=newJTextField(30);jtf6=newJTextField(30);jtf7=newJTextField(30);//初始化jtextfield數(shù)據(jù)jtf1.setText((String)em.getValueAt(rowNums,0));jtf1.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(rowNums,5));jtf7.setText((String)em.getValueAt(rowNums,6));jb1=newJButton("修改");jb2=newJButton("取消");//對兩個按鈕監(jiān)聽jb1.addActionListener(this);jb2.addActionListener(this);jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();//設置布局jp1.setLayout(newGridLayout(7,1));jp2.setLayout(newGridLayout(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(jp2,BorderLayout.CENTER);this.add(jp3,BorderLayout.SOUTH);this.setSize(300,250);this.setVisible(true);this.setLocation(200,200);this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){ dispose(); } }); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb1){//修改員工信息的sql語句,paras為待注入的值 Stringsql="updateEmployinfoset" +"Ename=?,Sex=?,Birthday=?,DeptNo=?,Ejob=?,Sal=?whereEmpno=?"; String[]paras={jtf2.getText(),jtf3.getText(),jtf4.getText(),jtf5.getText(),jtf6.getText(),jtf7.getText(),jtf1.getText()}; EmployModeltemp=newEmployModel();//如果修改語句運行成功那么彈出“修改成功〞對話框if(temp.updEmploy(sql,paras)){ JOptionPane.showMessageDialog(this,"修改成功"); }this.dispose(); }elseif(e.getSource()==jb2){//關閉對話框this.dispose(); } }}DelEmploy/***刪除員工*/packagecom.Manager;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassDelEmployextendsPanelimplementsActionListener{ JTablejt; JScrollPanejsp; JButtonjb1,jb2;JPaneljp1,jp2; JLabeljl1; EmployModelem;publicDelEmploy(){//北部jl1=newJLabel("刪除員工",JLabel.CENTER);jl1.setFont(newFont("黑體",Font.BOLD,30));jp2=newJPanel();jp2.add(jl1);//中部em=newEmployModel(); String[]paras={"1"};em.queryEmploy("select*fromEmployinfowhere1=?",paras);jt=newJTable(em);jsp=newJScrollPane(jt);//南部jp1=newJPanel();jb1=newJButton("刪除");jb2=newJButton("取消");jb1.addActionListener(this);jp1.add(jb1);jp1.add(jb2);this.setLayout(newBorderLayout());this.add(jp2,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);this.add(jp1,BorderLayout.SOUTH); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb1){//返回用戶點中的行introwNum=this.jt.getSelectedRow();if(rowNum==-1){ JOptionPane.showMessageDialog(this,"請選擇一行");return; }//得到學生編號 StringEmpno=(String)em.getValueAt(rowNum,0);//刪除記錄的sql語句 Stringsql="deletefromEmployinfowhereEmpno=?"; String[]paras={Empno}; EmployModeltemp=newEmployModel(); temp.updEmploy(sql,paras);//刪除員工成功后,更新員工表em=newEmployModel(); String[]paras1={"1"};em.queryEmploy("select*fromEmployinfowhere1=?",paras1);jt.setModel(em); } }}AllEmploy/***遍歷所有員工*/packagecom.Manager;importjava.awt.*;importjavax.swing.*;publicclassAllEmployextendsPanel{ EmployModelem; JTablejt; JScrollPanejsp;JLabeljl1;JPaneljp;publicAllEmploy() {//北部jp=newJPanel();jl1=newJLabel("全體員工",JLabel.CENTER);jl1.setFont(newFont("黑體",Font.BOLD,30));jp.add(jl1);//中部em=newEmployModel(); String[]paras={"1"};em.queryEmploy("select*fromEmployinfowhere1=?",paras); jt=newJTable(em); jsp=newJScrollPane(jt); this.setLayout(newBorderLayout());this.add(jp,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER); }}Examine/***員工考核界面*/packagecom.Manager;importjava.awt.*;importjava.awt.event.*;importjava.sql.ResultSet;import;importjava.sql.*;importjavax.swing.*;publicclassExamineextendsPanelimplementsActionListener{ JLabeljl1,jl2,jl3,jl4; JTablejt; JScrollPanejsp; JTextFieldjtf1,jtf2; Choicech; JButtonjb1,jb2; JPaneljp1,jp2,jp3,jp4; AppraisalModelam; SqlHelpersqh;publicExamine(){//北部為標題文字jp4=newJPanel();jl1=newJLabel("員工考核",JLabel.CENTER);jl1.setFont(newFont("黑體",Font.BOLD,30));jp4.add(jl1);//中部am=newAppraisalModel();am.queryAppraisal("selectE.Empno,E.Ename,A.Consequence,A.RegDatefrom" +"EmployinfoasE,AppraisalasAwhereE.Empno=A.Empno");jt=newJTable(am);jsp=newJScrollPane(jt);//監(jiān)聽jtable點擊表格時獲取點擊的行數(shù)并通過鼠標點擊事件給jtf1,jtf2賦值jt.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvente){introwNum=jt.getSelectedRow();jtf1.setText((String)am.getValueAt(rowNum,0));jtf2.setText((String)am.getValueAt(rowNum,1)); } });jl2=newJLabel("工號:");jl3=newJLabel("姓名:");jl4=newJLabel("考核");jtf1=newJTextField(10);jtf2=newJTextField(10);jtf1.setEditable(false);jtf2.setEditable(false);//實例單項選擇框組件,并賦值ch=newChoice();ch.add("未考核");ch.add("不合格");ch.add("合格");ch.add("優(yōu)秀");jp1=newJPanel();jp1.add(jl2);jp1.add(jtf1);jp1.add(jl3);jp1.add(jtf2);jp1.add(jl4);jp1.add(ch);jp2=newJPanel(newBorderLayout());jp2.add(jsp,BorderLayout.CENTER);jp2.add(jp1,BorderLayout.SOUTH);//南部jb1=newJButton("確認");jb2=newJButton("刷新");jp3=newJPanel();jb1.addActionListener(this);jb2.addActionListener(this);jp3.add(jb1);jp3.add(jb2);this.setLayout(newBorderLayout());this.add(jp4,BorderLayout.NORTH);this.add(jp2,BorderLayout.CENTER);this.add(jp3,BorderLayout.SOUTH); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb1){ StringEmpno=jtf1.getText(); StringEname=jtf2.getText(); StringConsequence=ch.getSelectedItem();//先獲取上次考核記錄 Stringsql="selectConsequencefromAppraisalwhereEmpno=?"; String[]paras={Empno}; StringOldInfo="";try{sqh=newSqlHelper(); ResultSetrs=sqh.queryExecute(sql,paras); rs.next(); OldInfo=rs.getString(1); }catch(Exceptione1){ e1.printStackTrace(); }finally{sqh.close(); }//對考核表進行修改修改考核記錄的sql語句 Stringsql1="updateAppraisalsetConsequence=?whereEmpno=?"; String[]paras1={Consequence,Empno}; AppraisalModeltemp=newAppraisalModel();if(temp.updAppraisal(sql1,paras1)){ JOptionPane.showMessageDialog(this,"考核成功"); }//再把"上次考核記錄"以及"本次操作記錄"插入到history表中 Stringsql2="insertintoHistory(Empno,Ename,OldInfo,NewInfo)values(?,?,?,?)"; String[]paras2={Empno,Ename,OldInfo,Consequence}; AppraisalModeltemp1=newAppraisalModel(); temp1.updAppraisal(sql2,paras2); }elseif(e.getSource()==jb2){//刷新員工考核表am=newAppraisalModel(); String[]paras3={"1"};am.queryAppraisal("selectE.Empno,E.Ename,A.Consequence,A.RegDatefrom" +"EmployinfoasE,AppraisalasAwhereE.Empno=A.Empno");this.jt.setModel(am); } }}History/***歷史記錄界面*/packagecom.Manager;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassHistoryextendsPanelimplementsActionListener{ AppraisalModelam; JTablejt; JScrollPanejsp; JLabeljl1; JPaneljp,jp1,jp2; JButtonjb1,jb2;publicHistory(){//北部jp=newJPanel();jl1=newJLabel("員工考核歷史記錄",JLabel.CENTER);jl1.setFont(newFont("黑體",Font.BOLD,30));jp.add(jl1);//中部am=newAppraisalModel(); String[]paras={"1"};am.queryHistory("select*fromHistorywhere1=?",paras);jt=newJTable(am);jsp=newJScrollPane(jt);//南部jp2=newJPanel();jb1=newJButton("清空");jb2=newJButton("刷新");jb1.addActionListener(this);jb2.addActionListener(this);jp2.add(jb1);jp2.add(jb2);this.setLayout(newBorderLayout());this.add(jp,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);this.add(jp2,BorderLayout.SOUTH); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==jb1){//刪除歷史記錄并更新表am=newAppraisalModel(); String[]paras={"1"};am.updAppraisal("deleteHistorywhere1=?",paras);am.queryHistory("select*fromHistorywhere1=?",paras);this.jt.setModel(am); }elseif(e.getSource()==jb2){//刷新表格am=newAppraisalModel(); String[]paras={"1"};am.queryHistory("select*fromHistorywhere1=?",paras);this.jt.setModel(am); } }}EmployModel/***重寫TableModel*/packagecom.Manager;importjavax.swing.table.*;importjava.sql.*;importjava.util.*;publicclassEmployModelextendsAbstractTableModel{VectorrowData,columnNames;//實現(xiàn)查詢publicvoidqueryEmploy(Stringsql,String[]paras){ SqlHelpersqh=null;//用columnNames存放表的列名columnNames=newVector();columnNames.add("工號");columnNames.add("姓名");columnNames.add("性別");columnNames.add("出生年月");columnNames.add("部門");columnNames.add("職位");columnNames.add("工資");//rowData存放表格的各行數(shù)據(jù)rowData=newVector();try{ sqh=newSqlHelper(); ResultSetrs=sqh.queryExecute(sql,paras);while(rs.next()) {Vectorhang=newVector();hang.add(rs.getString(1));hang.add(rs.getString(2));hang.add(rs.getString(3));hang.add(rs.getString(4));hang.add(rs.getString(5));hang.add(rs.getString(6));hang.add(rs.getString(7));rowData.add(hang); } }catch(Exceptione){ e.printStackTrace(); }finally{ sqh.close(); }}//實現(xiàn)表格增修改功能publicbooleanupdEmploy(Stringsql,String[]paras) { SqlHelpersqh=newSqlHelper();returnsqh.updExecute(sql,paras); }publicintgetRowCount(){returnthis.rowData.size(); }publicStringgetColumnName(intcolumn){return(String)this.columnNames.get(column); }publicintgetColumnCount(){ returnthis.columnNames.size(); }publicObjectgetValueAt(introw,intcolumn){//獲得某一個單元格的數(shù)值return((Vector)this.rowData.get(row)).get(column); }}AppraisalModel/***重寫TableModel為考核類的table模板*/packagecom.Manager;importjavax.swing.table.*;importjava.sql.*;importjava.util.*;publicclassAppraisalModelextendsAbstractTableModel{VectorrowData,columnNames;//實現(xiàn)查詢publicvoidqueryAppraisal(Stringsql){SqlHelpersqh=null;//用columnNames存放表的列名columnNames=newVector();columnNames.add("工號");columnNames.add("姓名");columnNames.add("上次考核");columnNames.add("考核時間");//rowData存放表格的各行數(shù)據(jù)rowData=newVector();try{ sqh=newSqlHelper(); ResultSetrs=sqh.queryExecute(sql);while(rs.next()){Vectorhang=newVector();hang.add(rs.getString(1));hang.add(rs.getString(2));hang.add(rs.getString(3));hang.add(rs.getString(4));rowData.add(hang); } }catch(Exceptione){ e.printStackTrace(); }finally{ sqh.close(); } }//查詢員工考核歷史記錄方法publicvoidqueryHistory(Stringsql,String[]paras){SqlHelpersqh=null;//用columnNames存放表的列名columnNames=newVector();columnNames.add("流水號");columnNames.add("工號");columnNames.add("姓名");columnNames.add("上次考核");columnNames.add("本次考核");columnNa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應合同范本寫
- 240鉆機租賃合同范本
- epc工程合同使用合同范本
- 人工加材料合同范本
- 全新貨車購車合同范例
- 保險公司擔保貸款合同范本
- it 顧問合同范本
- 分公司發(fā)票合同范本
- 代招合同范本
- 出租摩托協(xié)議合同范本
- 高二英語期末考試試卷質(zhì)量分析報告
- 催化動力學分析法及其應用
- 外研版英語九年級下冊詞匯表音標打印
- 聯(lián)合國教科文組織(UNESCO):可持續(xù)發(fā)展教育-路線圖
- 延長保修服務
- GB/T 28906-2012冷鐓鋼熱軋盤條
- GB/T 24722-2020路面標線用玻璃珠
- GB/T 18216.1-2021交流1 000 V和直流1 500 V及以下低壓配電系統(tǒng)電氣安全防護措施的試驗、測量或監(jiān)控設備第1部分:通用要求
- GB/T 17758-2010單元式空氣調(diào)節(jié)機
- GB/T 1348-1988球墨鑄鐵件
- FZ/T 60011-2016復合織物剝離強力試驗方法
評論
0/150
提交評論