java简易员工管理系统
- 格式:doc
- 大小:852.00 KB
- 文档页数:29
源代码package lesson2;import java。
sql。
*;public class employee{public String num;public String name;public String sex;public String age;public String edu;public String sla;public String add;public String tel;public void init(String x1,String x2,String x3,String x4,String x5,String x6,String x7,String x8){num=x1;name=x2;sex=x3;age=x4;edu=x5;sla=x6;add=x7;tel=x8;}public void load(String f){try{Class。
forName(”com.microsoft.sqlserver.jdbc。
SQLServerDriver”);String url=”jdbc:sqlserver://localhost:1433;DatabaseName=employee";String userName=”sa”;String password="xhw";Connection conn=DriverManager.getConnection (url,userName,password);if(conn!=null)System.out。
println(”已成功地与SQL Server 2005数据库建立连接!");Statement stmt=conn.createStatement();stmt.executeUpdate(f);stmt。
close();}catch(Exception e){e。
基于JSP的企业级人力资源管理系统设计与实现一、引言随着信息化时代的到来,企业对于人力资源管理的需求日益增加。
传统的人力资源管理方式已经无法满足企业快速发展的需求,因此,建立一个高效、智能的企业级人力资源管理系统显得尤为重要。
本文将介绍基于JSP(JavaServer Pages)技术的企业级人力资源管理系统的设计与实现。
二、系统架构设计1. 系统功能模块划分在设计企业级人力资源管理系统时,需要根据实际需求将系统功能划分为不同的模块,以便于管理和维护。
常见的功能模块包括员工信息管理、招聘管理、培训管理、绩效考核等。
2. 数据库设计数据库设计是企业级系统设计中至关重要的一环。
在人力资源管理系统中,需要设计合理的数据库结构来存储员工信息、招聘信息、培训记录等数据。
通过合理的数据库设计,可以提高系统的性能和扩展性。
三、技术选型1. JSPJSP作为一种动态网页开发技术,具有简单易学、灵活性高等特点,非常适合用于企业级系统的开发。
通过JSP可以方便地实现页面与后台Java代码的交互,实现数据的动态展示和处理。
2. ServletServlet作为JSP的后台支持,可以处理用户请求并生成动态内容。
在企业级人力资源管理系统中,Servlet可以用于处理用户提交的表单数据、调用业务逻辑处理等。
3. JDBCJDBC是Java连接数据库的标准接口,通过JDBC可以方便地与数据库进行交互。
在人力资源管理系统中,需要使用JDBC来实现与数据库的数据交互操作,包括数据查询、插入、更新和删除等。
四、系统实现1. 员工信息管理模块员工信息管理模块是人力资源管理系统中最基础也是最重要的模块之一。
通过该模块可以实现员工档案管理、薪资福利管理、考勤管理等功能。
在实现员工信息管理模块时,需要考虑数据的安全性和完整性。
2. 招聘管理模块招聘管理模块用于发布招聘信息、筛选简历、安排面试等。
通过该模块可以提高招聘效率,缩短招聘周期。
在实现招聘管理模块时,需要考虑用户友好性和操作便捷性。
java 岗位管理设计方案Java岗位管理设计方案在当今的信息技术领域,Java作为一种广泛使用的编程语言,具有广泛的适用性和稳定的性能。
因此,建立一个高效的Java岗位管理方案对于组织和企业来说至关重要。
在本文中,我们将介绍一个基本的Java岗位管理设计方案,以确保岗位的有效管理和团队的高效协作。
1. 岗位概述:该岗位负责开发和维护Java应用程序,包括编写和优化代码、进行系统测试和故障排除、参与需求分析和系统设计等工作。
该岗位与其他部门、团队和项目经理密切合作,确保项目按时交付并符合质量标准。
2. 岗位职责:- 参与需求分析和系统设计,根据业务需求编写技术方案和软件设计文档- 编写、调试和优化Java代码,确保系统的稳定性和性能- 进行系统测试和故障排除,修复发现的漏洞和错误- 与团队成员和相关部门合作,确保项目按时交付并满足质量要求- 持续学习和掌握新的技术趋势和最佳实践,提升团队的技术能力和创新能力3. 岗位要求:- 拥有扎实的Java编程基础和良好的面向对象设计思维能力- 熟悉常用的Java开发框架和工具,如Spring、Hibernate等- 熟悉数据库设计和SQL语言,能够编写高效的SQL查询和优化数据库性能- 具备良好的沟通和团队合作能力,能够与其他团队成员和相关部门紧密合作- 具备较强的问题解决能力和学习能力,能够独立解决技术问题并及时跟进项目进展4. 岗位培训和发展:- 提供必要的技术培训和学习机会,使岗位人员能够不断提升技术能力和专业素养- 鼓励岗位人员积极参与技术交流和分享,促进团队内部的知识共享和协作- 提供晋升和发展机会,根据个人表现和能力,为岗位人员提供更高级别的职位和更多的挑战机会总结:通过以上的设计方案,我们可以明确Java岗位的职责、要求和发展规划,并为岗位人员提供良好的学习和成长环境。
通过有效的岗位管理和团队协作,我们可以确保项目的顺利进行和高质量的交付。
Java岗位管理设计方案的实施将有助于提高团队的整体效率和绩效,同时也能为组织和企业带来更多的价值和竞争力。
java语言编程应用案例分享java语言是一种广泛应用于软件开发领域的编程语言,具有跨平台、面向对象、安全性高等特点。
在实际应用中,java语言可以用于开发各种类型的应用程序。
下面列举了10个以java语言编写的应用案例,分别涉及到不同领域和应用场景。
1. 学生信息管理系统学生信息管理系统是一种常见的应用程序,用于管理学校或教育机构的学生信息。
通过java语言可以实现学生信息的录入、查询、修改和删除等功能,使学校的学生信息管理更加便捷和高效。
2. 图书馆管理系统图书馆管理系统是一种用于管理图书馆藏书和借阅信息的应用程序。
通过java语言可以实现图书的录入、查询、借阅和归还等功能,方便读者进行图书的管理和借阅。
3. 在线购物系统在线购物系统是一种通过互联网进行商品购买的应用程序。
通过java语言可以实现用户注册、商品浏览、购物车管理、订单生成等功能,提供给用户方便快捷的购物体验。
4. 酒店管理系统酒店管理系统是一种用于管理酒店客房和预订信息的应用程序。
通过java语言可以实现客房的查询、预订和退订等功能,方便酒店管理人员进行客房的管理和预订。
5. 在线银行系统在线银行系统是一种通过互联网进行银行业务操作的应用程序。
通过java语言可以实现用户登录、账户查询、转账汇款、账单管理等功能,方便用户进行各种银行操作。
6. 医院挂号系统医院挂号系统是一种用于管理医院患者挂号和预约信息的应用程序。
通过java语言可以实现患者的挂号、预约和退号等功能,方便医院管理人员进行患者的管理和预约。
7. 电影票订购系统电影票订购系统是一种通过互联网进行电影票购买的应用程序。
通过java语言可以实现用户注册、电影浏览、选座购票等功能,方便用户进行电影票购买和选座。
8. 人事管理系统人事管理系统是一种用于管理企业员工信息和薪酬福利的应用程序。
通过java语言可以实现员工信息的录入、查询和薪酬福利管理等功能,方便企业进行人事管理。
息科学与工程学院毕业论文工作记录题目:基于JA V A的员工管理系统设计与实现学生姓名:学号:学制:班级:专业:计算机科学与技术年级:指导教师:成绩:完成时间:毕业设计(论文)选题申请表说明一、开题报告前的准备毕业设计(论文)题目确定后,学生应尽快征求导师意见,讨论题意与整个毕业设计(论文)(或设计)的工作计划,然后根据课题要求查阅、收集有关资料并编写研究提纲,主要由以下几个部分构成:1.研究(或设计)的目的与意义。
应说明此项研究(或设计)在生产实践上或对某些技术进行改革带来的经济与社会效益。
有的课题过去曾进行过,但缺乏研究,现在可以在理论上做些探讨,说明其对科学发展的意义。
2.国内外同类研究(或同类设计)的概况综述。
在广泛查阅有关文献后,对该类课题研究(或设计)已取得的成就与尚存在的问题进行简要综述,只对本人所承担的课题或设计部分的已有成果与存在问题有条理地进行阐述,并提出自己对一些问题的看法。
引用内容要有标注。
3.课题研究(或设计)的内容。
要具体写出将在哪些方面开展研究,要重点突出。
研究的主要内容应是物所能及、力所能及、能按时完成的,并要考虑与其它同学的互助、合作。
4.研究(或设计)方法。
科学的研究方法或切合实际的具有新意的设计方法,是获得高质量研究成果或高水平设计成就的关键。
因此,在开始实践前,学生必须熟悉研究(或设计)方法,以避免蛮干造成返工,或得不到成果,甚至于写不出毕业设计(论文)或完不成设计任务。
5.实施计划。
要在研究提纲中按研究(或设计)内容落实具体时间与地点,有计划地进行工作。
二、开题报告1.开题报告可在导师所在教研室或系内举行,须适当请有关不少于3位老师参加,导师及所有同导师的同学必须参加。
2.本表(页面:A4)在开题报告通过论证后填写,一式三份,本人、导师、所在系(要原件)各一份。
三、注意事项1.开题报告的撰写完成,意味着毕业设计(论文)工作已经开始,学生已对整个毕业设计(论文)工作有了周密的思考,是完成毕业设计(论文)关键的环节。
JSP员工管理系统1. 简介JSP员工管理系统是一个用于管理企业员工信息的系统,通过该系统可以方便地进行员工信息的录入、查询、更新和删除等操作。
该系统采用JSP(JavaServer Pages)作为前端开发技术,使用MySQL作为后端数据库存储员工信息。
2. 功能模块JSP员工管理系统主要包括以下几个功能模块:2.1 登录功能用户可以使用用户名和密码登录系统。
系统会验证用户名和密码的准确性,若验证通过,则跳转到首页;否则,提示用户重新输入。
2.2 首页登录成功后,用户将进入系统的首页。
首页主要展示系统的基本信息和各个功能模块的入口。
2.3 员工信息管理功能该功能模块实现了对员工信息的增删改查操作。
用户可以通过表单输入员工的基本信息,包括姓名、年龄、性别、职位等,并且可以对已有员工信息进行修改和删除。
用户还可以通过关键词查询员工信息,系统将返回匹配的员工列表。
2.4 统计功能系统提供了一些统计功能,包括员工人数统计、各个职位的人数统计、员工年龄段的分布统计等。
用户可以通过选择不同的统计维度和筛选条件来获取相应的统计结果。
2.5 权限管理功能该功能模块实现了对系统用户的权限管理。
系统管理员可以添加、删除和修改用户的权限,设置用户能够访问的功能模块和操作。
3. 技术架构JSP员工管理系统的技术架构如下:•前端采用JSP作为开发技术,使用HTML和CSS进行页面设计和样式布局。
•后端采用Java语言开发,使用Servlet作为控制器,处理用户的请求,并调用相应的服务层进行业务逻辑处理。
•数据库采用MySQL存储员工信息,通过JDBC(Java Database Connectivity)与后端进行交互。
•通过Tomcat作为应用服务器部署和运行系统。
4. 数据库设计系统的数据库设计如下:4.1 员工表(employee)列名数据类型主键描述id int是员工IDname varchar(50)员工姓名age int员工年龄gender varchar(10)员工性别position varchar(50)员工职位entry_date date入职日期4.2 用户表(user)列名数据类型主键描述id int是用户ID username varchar(50)用户名password varchar(50)密码role varchar(50)用户角色5. 系统部署系统的部署步骤如下:1.配置Java开发环境和Tomcat服务器环境。
package exercise;import java.io.*;class staffInfo //职工类{public String name;public String num;public String sex;public String age;public String record;public String position;public String wanges;public String tel;public String addr;}public class StaffInfomation //实现部分{public static void main(final String[] args) throws IOException {staffInfo staffOne[]=new staffInfo[100];for(int j=0;j<100;j++)staffOne[j] = new staffInfo();final ways staffTwo=new ways();staffTwo.caidan(staffOne);staffTwo.creat(staffOne);staffTwo.output(staffOne);staffTwo.search(staffOne);staffTwo.delete(staffOne);}}class ways //方法类,重要实现职工信息的建立,显示,查找,删除,信息的保存与读取;这个类是整个程序的操作类。
{public String recordkey;public int i=0;//i用来存放职工的人数public String filename="Infomation.txt";BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));void caidan(staffInfo staffOne[]) throws IOException{final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); //此处是JAVA语言中输入数据的基本格式,功能有如C中的scanf函数int choice;do{System.out.println("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓");System.out.println("┃★★★★★★★★职工管理系统主菜单界面★★★★★★★★┃");System.out.println("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫");System.out.println("┃★★★1.输入职工信息★★★┃");System.out.println("┃★★★ 2.预览职工信息★★★┃");System.out.println("┃★★★ 3.查找职工信息★★★┃");System.out.println("┃★★★ 4.删除职工信息★★★┃"); System.out.println("┃★★★5.读取已存数据★★★┃");System.out.println("┃★★★ 6.安全退出系统★★★┃");System.out.println("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");System.out.print(" 请输入您需要的功能代号(1--6):");choice=Integer.parseInt(buf.readLine());switch(choice){case 1:creat(staffOne);break;case 2:output(staffOne);break;case 3:search(staffOne);break;case 4:delete(staffOne);break;case 5:read(staffOne);break;case 6:save(staffOne);break;}}while(choice!=0);}void creat(staffInfo staffOne[]) throws IOException{final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("请输入职工信息(以0结束)\n");System.out.print("姓名:");staffOne[i].name=buf.readLine(); //用数组staffOne[i]来暂存职工的相关信息while(staffOne[i]pareTo("0")!=0) //用compareTo方法拟定鉴定是否应当写入新信息{System.out.print("工号:");staffOne[i].num=buf.readLine();System.out.print("性别:");staffOne[i].sex=buf.readLine();System.out.print("年龄:");staffOne[i].age=buf.readLine();System.out.print("学历:");staffOne[i].record=buf.readLine();System.out.print("职位:");staffOne[i].position=buf.readLine();System.out.print("工资:");staffOne[i].wanges=buf.readLine();System.out.print("电话:");staffOne[i].tel=buf.readLine();System.out.print("住址:");staffOne[i].addr=buf.readLine();i++;System.out.println("请输入下一个职工信息:");staffOne[i].name=buf.readLine();}}void output(staffInfo staffOne[]) throws IOException //这里是实现“输出(预览)职工信息”output的模块{for(int j=0;j<i;j++){if(i!=0){System.out.println("------------------------------------------------------------------------------------------------");System.out.println(" *职工信息表* ");System.out.println("-------------------------------------------------------------------------------------------------");System.out.println("姓名\t工号\t\t性别\t年龄\t学历\t职位\t\t工资\t电话号码 \t\t住址");System.out.println("-------------------------------------------------------------------------------------------------");System.out.print(staffOne[j].name+"\t"+staffOne[j].num+"\t"+staff One[j].sex+"\t"+staffOne[j].age+"\t"+staffOne[j].record+"\t"+staf fOne[j].position+"\t\t"+staffOne[j].wanges+"\t"+staffOne[j].tel+" \t"+staffOne[j].addr+"\n");System.out.println("-------------------------------------------------------------------------------------------------");}else System.out.println("没有职工信息!");}}void search(staffInfo staffOne[]) throws IOException{final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("请输入您要查找的职工工号:");recordkey=buf.readLine();boolean flg=true;for(int j=0;j<i;j++){if(recordkey.equals(staffOne[j].num)) //equals是字符串比较函数相等返回true{System.out.println("-------------------------------------------------------------------------------------");System.out.println(" *职工信息表* ");System.out.println("--------------------------------------------------------------------------------------");System.out.println("姓名\t工号\t\t性别\t年龄\t学历\t职位 \t\t 工资\t电话号码 \t\t住址");System.out.println("--------------------------------------------------------------------------------------");System.out.println(staffOne[j].name+"\t"+staffOne[j].num+"\t"+sta ffOne[j].sex+"\t"+staffOne[j].age+"\t"+staffOne[j].record+"\t"+st affOne[j].position+"\t\t"+staffOne[j].wanges+"\t"+staffOne[j].tel +"\t"+staffOne[j].addr+"\n");flg=false;}}if(flg)System.out.println("对不起,查无此人!");}void delete(staffInfo staffOne[]) throws IOException{final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("请输入您要删除的职工工号:");recordkey=buf.readLine();boolean flg=true;for(int j=0;j<i;j++){System.out.println("输入的工号为:"+recordkey);if(recordkey.equals(staffOne[j].num)){for(int k=j;k<=i-1;k++) //运用顺序表的删除算法,删除值之后,再把后面的值往前移位,从而实现删除{staffOne[k].name=staffOne[k+1].name ;staffOne[k].num=staffOne[k+1].num ;staffOne[k].sex=staffOne[k+1].sex;staffOne[k].age=staffOne[k+1].age ;staffOne[k].record=staffOne[k+1].record ;staffOne[k].position=staffOne[k+1].position ;staffOne[k].wanges=staffOne[k+1].wanges ;staffOne[k].tel=staffOne[k+1].tel ;staffOne[k].addr=staffOne[k+1].addr ;}i--;//职工人数减一flg=false;}}if(flg)System.out.println("对不起,查无此人!。
企业⼈事管理系统java源代码import java.awt.* ;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;public class A extends JFrame{protected JPanel p = new JPanel();protected JPanel p1 = new JPanel();protected JPanel p2 = new JPanel();protected JPanel p3= new JPanel();JMenuBar M =new JMenuBar();JMenu m1 = new JMenu("基本信息模块");JMenu m2 = new JMenu("考勤考评信息模块");JMenu m3 = new JMenu("系统维护信息模块");JMenuItem mm1 = new JMenuItem("员⼯基本信息"); JMenuItem mm2 = new JMenuItem("员⼯家庭成员基本信息"); JMenuItem mm3 = new JMenuItem("员⼯培训信息"); JMenuItem mm4 = new JMenuItem("员⼯考勤信息"); JMenuItem mm5 = new JMenuItem("员⼯考评信息"); JMenuItem mm6 = new JMenuItem("普通管理员"); JMenuItem mm7 = new JMenuItem("⾼级管理员"); JMenuItem mm8 = new JMenuItem("退出");protected JLabel l1 = new JLabel("员⼯编号:");protected JLabel l2 = new JLabel("姓名:");protected JLabel l3 = new JLabel("性别:");protected JLabel l4 = new JLabel("年龄:");protected JLabel l5 = new JLabel("部门:");protected JTextField t1 = new JTextField(10);protected JTextField t2 = new JTextField(10);protected JTextField t3 = new JTextField(10);protected JTextField t4 = new JTextField(10);protected JTextField t5 = new JTextField(10);private JButton b1 = new JButton("查询");private JButton b2 = new JButton("插⼊");private JButton b3 = new JButton("修改");private JButton b4 = new JButton("删除");private JButton b5 = new JButton("清除");private JButton b6 = new JButton("下⼀条");private Connection c; // @jve:decl-index=0:private Statement s; // @jve:decl-index=0:private ResultSet r; // @jve:decl-index=0:{super("⼈事管理系统");getContentPane().add(p);setJMenuBar(M);M.add(m1);M.add(m2);M.add(m3);m1.add(mm1);m1.add(mm2);m1.add(mm3);m1.addSeparator();m1.add(mm8);m2.add(mm4);m2.add(mm5);m3.add(mm6);m3.add(mm7);p.add(p1,BorderLayout.NORTH);p.add(p2,BorderLayout.CENTER);p.add(p3,BorderLayout.SOUTH);p1.setLayout(new GridLayout(5,2,1,3));p1.add(l1);p1.add(t1);p1.add(l2);p1.add(t2);p1.add(l3);p1.add(t3);p1.add(l4);p1.add(t4);p1.add(l5);p1.add(t5);p2.add(b1);p1.add(b2);p2.add(b3);p1.add(b4);p2.add(b5);p3.add(b6);t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");setSize(350,300);setVisible(true);try{Class.forName("sun.jdbc.odbc.JdbcOdbcDrive");c=DriverManager.getConnection("jdbc:odbc:sd","sa",null);s=c.createStatement();r=s.executeQuery("select * from 员⼯基本信息表");}catch (SQLException e){JOptionPane.showMessageDialog(null ,e.getMessage(),"操作错误!",JOptionPane.ERROR_MESSAGE); System.exit(1);}catch(ClassNotFoundException e)JOptionPane.showMessageDialog(null ,e.getMessage(),"驱动程序找不到!",JOptionPane.ERROR_MESSAGE); System.exit(1);}addWindowListener( new WindowAdapter(){public void windowClosing(WindowEvent event){try {s.close();c.close();catch(SQLException e){JOptionPane.showMessageDialog(null,e.getMessage(),"不能关闭!",JOptionPane.ERROR_MESSAGE); System.exit(1);}}});b1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){try{r=s.executeQuery("select * from 员⼯基本信息表" + "where 员⼯编号='"+t1.getText()+"'");if(r.next()){t1.setText(r.getString(1));t2.setText(r.getString(2));t3.setText(r.getString(3));t4.setText(r.getString(4));t5.setText(r.getString(5));JOptionPane.showMessageDialog(null,"查询成功!","查询操作",JOptionPane.ERROR_MESSAGE);}else{t2.setText("");t3.setText("");t4.setText("");t5.setText("");JOptionPane.showMessageDialog(null,"查询失败!","查询操作",JOptionPane.ERROR_MESSAGE);}catch(NumberFormatException e){System.out.println(e);}catch(SQLException e){System.out.println(e);}});b2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){String v1,v2,v3,v4,v5;v1=t1.getText();v2=t2.getText();v3=t3.getText();v4=t4.getText();v5=t5.getText();if((!v1.equals( "" ))&&(!v2.equals(""))&&(!v3.equals(""))&&(!v4.equals(""))&&(!v5.equals (""))){try{int n1 = Integer.parseInt(v4);int r1 = s.executeUpdate("INSERT INTO 员⼯基本信息表"+ "values('"+v1+"','"+v2+"','"+v3+"',"+n1+",'"+v5+"')"); if(r1!=0){t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");JOptionPane.showMessageDialog(null,"插⼊成功!","插⼊操作",JOptionPane.ERROR_MESSAGE);}}catch (NumberFormatException e ){System.out.println(e);}catch (SQLException e){System.out.println(e);}}else{JOptionPane.showMessageDialog(null,"插⼊失败!","插⼊操作",JOptionPane.ERROR_MESSAGE);}}});b3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event)try {int r1=s.executeUpdate("update 员⼯基本信息表set 姓名='"+t2.getText()+"'," +"性别='"+t3.getText()+"'," +"年龄="+Integer.parseInt(t4.getText())+"," +"部门='"+t5.getText()+"'"+"where 员⼯编号='"+t1.getText()+"'");if(r1!=0){JOptionPane.showMessageDialog(null,"修改成功!","修改操作",JOptionPane.ERROR_MESSAGE);}else{JOptionPane.showMessageDialog(null,"修改失败!","修改操作",JOptionPane.ERROR_MESSAGE);}} catch (NumberFormatException e ){System.out.println(e);}catch (SQLException e){System.out.println(e);}}});b4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){try{int r1=s.executeUpdate("delete from 员⼯基本信息表"+"where 员⼯编号='"+t1.getText()+"'");if(r1!=0){t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");JOptionPane.showMessageDialog(null,"删除成功!","删除操作",JOptionPane.ERROR_MESSAGE);}else{JOptionPane.showMessageDialog(null,"删除失败!","删除操作",JOptionPane.ERROR_MESSAGE);}} catch (NumberFormatException e ){System.out.println(e);}catch (SQLException e){System.out.println(e);}}});b5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");}});b6.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){try{if(r.next())t1.setText(r.getString(1));t2.setText(r.getString(2));t3.setText(r.getString(3));t4.setText(""+r.getInt(4));t5.setText(r.getString(5));}catch (NumberFormatException e ){System.out.println(e);} catch (SQLException e){System.out.println(e);}}});mm8.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){System.exit(0);}});}public static void main(String args[]){new A();}}。
Java练⼿⼩项⽬实现⼀个项⽬管理系统⽬录前⾔:⼀、项⽬需求⼆、功能实现三、具体模块的实现四、总结前⾔:时隔多⽇,我们学习完java的⾯向对象阶段,毕竟需要付诸实践,这个⼩项⽬就作为我们第⼀个java⾯向对象解决的项⽬,接下来就让我们⼀起进⼊项⽬的世界吧⼀、项⽬需求• 模拟实现⼀个基于⽂本界⾯的《项⽬开发团队分配管理软件》• 熟悉 Java ⾯向对象的⾼级特性,进⼀步掌握编程技巧和调试技巧•主要涉及以下知识点:Ø 类的继承性和多态性Ø 对象的值传递、接⼝Ø static 和 final 修饰符Ø 特殊类的使⽤:包装类、抽象类、内部类Ø 异常处理Ø Java 基本语法和流程控制Ø 数组, ArrayList 集合⼆、功能实现Ø 软件启动时,⾸先进⼊登录界⾯进⾏注册和登录功能。
Ø 当登陆成功后,进⼊菜单,⾸先就可以对开发⼈员账户和密码进⾏修改。
Ø 然后可以对开发⼈员进⾏增删改操作Ø ⼈员添加成功后,根据菜单提⽰,基于现有的公司成员,组建⼀个开发团队以开发⼀个新的项⽬。
Ø 组建过程包括将成员插⼊到团队中,或从团队中删除某成员,还可以列出团队中现有成员的列表,开发团队成员包括架构师、设计师和程序员。
Ø 团队组建成功,则可以进⼊项⽬模块,添加项⽬,分配开发团队进⾏开发。
整个项⽬UML类图。
制作不标准,见谅。
系统流程三、具体模块的实现1.实现登陆模块。
思路:要实现登陆模块,我们⾸先应该想到,我们平常登陆账号都是输⼊账号,密码,匹配你之前注册的账号密码即可登陆成功,怎么做到我们输⼊的账号密码和我们提前注册的账号密码匹配呢,这⾥我们就要想到,我们输⼊的账号密码都是字符串类型,既然是字符串,我们就可以使⽤String类的equals⽅法进⾏匹配,匹配成功,则登陆成功。
那么,在我们的项⽬当中,登陆之前我们是肯定要匹配他是否存在于我们的注册账号之中,如果存在,直接登陆,如果不存在,我们应该让⽤户先注册,当然,也可以加⼀个随机数组成的验证码来进⼀步强化我们的登陆模块。
主要功能:用Swing制作管理界面,连接数据库,完成对数据库emp表进行查添改删功能。
查询:添加:修改:删除:以上功能在完成时如果在操作时发生输入格式错误,操作都不能完成,并且都会出现提示。
环境配置为oracle数据库recruit,表emp,ip127.0.0.1,用户名system,密码871108源代码:主界面:package exercise.emp;import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import ponentAdapter;import ponentEvent;import java.io.IOException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import java.util.Vector;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;public class UserManager extends JFrame implements ActionListener {private JPanel penter = new JPanel();private JPanel pcontrol = new JPanel();private JLabel lid = new JLabel("编号:");private JLabel lid2 = new JLabel("编号:");private JLabel lname = new JLabel("姓名:");private JLabel lname2 = new JLabel("姓名:");private JLabel ljob = new JLabel("职位:");private JLabel ljob2 = new JLabel("职位:");private JLabel lsalary = new JLabel("工资:");private JLabel lsalary2 = new JLabel("工资:");private JLabel ldeptid = new JLabel("部门编号:");private JLabel ldeptid2 = new JLabel("部门编号:");private JLabel lupdate2 = new JLabel("修改完后请点击'修改'");private JLabel limage = new JLabel(new ImageIcon(this.getClass() .getResource("emp.jpg")), JLabel.CENTER);private JTextField tid = new JTextField();private JTextField tid2 = new JTextField();private JTextField tname = new JTextField();private JTextField tname2 = new JTextField();private JTextField tjob = new JTextField();private JTextField tjob2 = new JTextField();private JTextField tsalary = new JTextField();private JTextField tsalary2 = new JTextField();private JTextField tdeptid = new JTextField();private JTextField tdeptid2 = new JTextField();private JButton bselect = new JButton("查询");private JButton binsert = new JButton("插入");private JButton bdelete = new JButton("删除");private JButton bupdate = new JButton("修改");private JButton bupdate2 = new JButton("修改");private JScrollPane simage = new JScrollPane(limage);private JScrollPane stable;private JTable ttable;private JFrame uf;UserModel um = null;WindowOperate ml = null;int id, salary, deptid;boolean isInsert, isUpdate, isDelete;String sid, name, job;Vector oneemp;public UserManager(){super("emp用户操作界面");lunachframe();ml = new WindowOperate();ml.getAddComponentListener(this, 300, 250);ml.getaddWindowListener(this);um = new UserModel();if (um.connect() == true){getdialog("数据库连接成功。
提示:查询仅需输入4位数字编号,查询所有人输入all,请勿输入其他内容!");} else{getdialog("数据库连接失败,请修改配置。
数据库(recruit),表(emp),ip(127.0.0.1),用户(system),密码(871108)。
");}}public void lunachframe(){setLayout(new BorderLayout());penter.setLayout(new GridLayout(5, 2, 10, 10));penter.add(lid);penter.add(tid);penter.add(lname);penter.add(tname);penter.add(ljob);penter.add(tjob);penter.add(lsalary);penter.add(tsalary);penter.add(ldeptid);penter.add(tdeptid);pcontrol.add(bselect);pcontrol.add(binsert);pcontrol.add(bdelete);pcontrol.add(bupdate);bselect.addActionListener(this);binsert.addActionListener(this);bdelete.addActionListener(this);bupdate.addActionListener(this);add(penter, BorderLayout.NORTH);add(simage, BorderLayout.CENTER);add(pcontrol, BorderLayout.SOUTH);setSize(300, 450);setLocation(450, 200);setVisible(true);}public void lunachupdate(){uf = new UpdateJFrame();uf.add(lid2);uf.add(tid2);uf.add(lname2);uf.add(tname2);uf.add(ljob2);uf.add(tjob2);uf.add(lsalary2);uf.add(tsalary2);uf.add(ldeptid2);uf.add(tdeptid2);uf.add(lupdate2);uf.add(bupdate2);bupdate2.addActionListener(this);ml.refreshWindow(uf);}public void gettable(){ttable = null;ttable = um.executeQuery(ttable, sid);if (ttable == null){getdialog("查无此人!提示:查询仅需输入4位数字编号,查询所有人输入all,请勿输入其他内容!");} else{if (stable != null){remove(stable);}stable = new JScrollPane(ttable);add(stable);ml.refreshWindow(this);}}public void getdialog(String message){JOptionPane.showMessageDialog(this, message);}public void actionPerformed(ActionEvent e){remove(simage);if (e.getSource() == bselect){System.out.println("查询请求:" + tid.getText());if ((tname.getText().equals("")) && (tjob.getText().equals(""))&& (tsalary.getText().equals(""))&& (tdeptid.getText().equals(""))){if (tid.getText().equals("")){getdialog("查询编号不能为空!提示:查询仅需输入4位数字编号,查询所有人输入all,请勿输入其他内容!");} else if (tid.getText().equals("all")){sid = "all";gettable();} else{sid = tid.getText();gettable();}} else{getdialog("提示:提示:查询仅需输入4位数字编号,查询所有人输入all,请勿输入其他内容!");}}else if (e.getSource() == binsert){System.out.println("添加请求:" + tid.getText());String error = "您的输入有误:";if ((tid.getText().length() > 0) && (tid.getText().length() < 5) && (IsOk.isNumber(tid.getText()) == true)){id = Integer.parseInt(tid.getText());} else{error += "编号需为1到4位的整数,";}if ((tname.getText().length() > 0)&& (tname.getText().length() < 10)){name = tname.getText();} else{error += "姓名需为1到10位的字符,";}if ((tjob.getText().length() > 0) && (tjob.getText().length() < 9)) {job = tjob.getText();} else{error += "职位需为1到9位的字符,";}if ((tsalary.getText().length() > 0)&& (tsalary.getText().length() < 8)&& (IsOk.isNumber(tsalary.getText()) == true)){salary = Integer.parseInt(tsalary.getText());} else{error += "工资需为1到7位的整数,";}if ((tdeptid.getText().length() > 0)&& (tdeptid.getText().length() < 3)&& (IsOk.isNumber(tdeptid.getText()) == true)){deptid = Integer.parseInt(tdeptid.getText());} else{error += "部门编号需为1到2位的整数,";}if (error.equals("您的输入有误:")){isInsert = um.executeInsert(id, name, job, salary, deptid);if (isInsert == false){getdialog("该编号已经存在,请重新输入!");} else{getdialog("添加成功!");}} else{error += "请按照格式输入!";getdialog(error);}}else if (e.getSource() == bdelete){System.out.println("删除请求:" + tid.getText());if ((tname.getText().equals("")) && (tjob.getText().equals("")) && (tsalary.getText().equals(""))&& (tdeptid.getText().equals(""))){if (tid.getText().equals("")){getdialog("删除编号不能为空!提示:删除仅需输入4位数字编号,请勿输入其他内容!");} else{sid = tid.getText();ttable = null;ttable = um.executeQuery(ttable, sid);if (ttable == null){getdialog("查无此人,无法进行删除!提示:删除仅需输入4位数字编号,请勿输入其他内容!");} else{id = Integer.parseInt(tid.getText());isDelete = um.executeDelete(id);if (isDelete == true){getdialog("删除成功!");} else{getdialog("删除失败!");}}}} else{getdialog("提示:删除仅需输入4位数字编号,请勿输入其他内容!"); }}else if (e.getSource() == bupdate){System.out.println("修改请求:" + tid.getText());if ((tname.getText().equals("")) && (tjob.getText().equals("")) && (tsalary.getText().equals(""))&& (tdeptid.getText().equals(""))){if (tid.getText().equals("")){getdialog("修改编号不能为空!提示:修改仅需输入4位数字编号,请勿输入其他内容!");} else{sid = tid.getText();ttable = null;ttable = um.executeQuery(ttable, sid);if (ttable == null){getdialog("查无此人,无法进行修改!提示:修改仅需输入4位数字编号,请勿输入其他内容!");} else{setVisible(false);oneemp = um.executeQuery(oneemp, sid);tid2.setText(oneemp.get(0).toString());tname2.setText(oneemp.get(1).toString());tjob2.setText(oneemp.get(2).toString());tsalary2.setText(oneemp.get(3).toString());tdeptid2.setText(oneemp.get(4).toString());tid2.setEditable(false);lunachupdate();ml.getaddWindowListener(uf, this);}}} else{getdialog("提示:修改仅需输入4位数字编号,请勿输入其他内容!"); }}else{System.out.println("修改:" + tid2.getText());String error = "您的输入有误:";id = Integer.parseInt(tid2.getText());if ((tname2.getText().length() > 0)&& (tname2.getText().length() < 10)){name = tname2.getText();} else{error += "姓名需为1到10位的字符,";}if ((tjob2.getText().length() > 0)&& (tjob2.getText().length() < 9)){job = tjob2.getText();} else{error += "职位需为1到9位的字符,";}if ((tsalary2.getText().length() > 0)&& (tsalary2.getText().length() < 8)&& (IsOk.isNumber(tsalary2.getText()) == true)){salary = Integer.parseInt(tsalary2.getText());} else{error += "工资需为1到7位的整数,";}if ((tdeptid2.getText().length() > 0)&& (tdeptid2.getText().length() < 3)&& (IsOk.isNumber(tdeptid2.getText()) == true)){deptid = Integer.parseInt(tdeptid2.getText());} else{error += "部门编号需为1到2位的整数,";}if (error.equals("您的输入有误:")){isUpdate = um.executeUpdate(id, name, job, salary, deptid); if (isUpdate == true){getdialog("修改成功!");uf.dispose();setVisible(true);} else{getdialog("修改失败!");}} else{error += "请按照格式输入!";getdialog(error);}}}public static void main(String args[]){UserManager user = new UserManager();}}数据模型:package exercise.emp;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.Vector;import javax.swing.JTable;public class UserModel{String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:recruit"; String user = "system";String password = "871108";Connection connection = null;Statement statement = null;ResultSet resultSet = null;PreparedStatement pstmt = null;JTable jtable = null;Vector rowDate = null;Vector columnNames = null;public boolean connect(){try{Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); connection = DriverManager.getConnection(dbUrl, user, password); System.out.println("连接数据库成功");statement = connection.createStatement();return true;} catch (Exception e){e.printStackTrace();return false;}}public boolean close(){try{resultSet.close();statement.close();connection.close();pstmt.close();return true;} catch (Exception e){e.printStackTrace();return false;}}public JTable executeQuery(JTable jtable, String str){this.jtable = jtable;String sql = "select * from emp";try{resultSet = statement.executeQuery(sql);columnNames = new Vector();columnNames.add("编号");columnNames.add("姓名");columnNames.add("职位");columnNames.add("工资");columnNames.add("部门编号");rowDate = new Vector();while (resultSet.next()){if (str.equals("all")){Vector row = new Vector();row.add(resultSet.getString(1));row.add(resultSet.getString(2));row.add(resultSet.getString(3));row.add(resultSet.getString(4));row.add(resultSet.getString(5));rowDate.add(row);jtable = new JTable(rowDate, columnNames); }if (str.equals(resultSet.getString(1))){Vector row = new Vector();row.add(resultSet.getString(1));row.add(resultSet.getString(2));row.add(resultSet.getString(3));row.add(resultSet.getString(4));row.add(resultSet.getString(5));rowDate.add(row);jtable = new JTable(rowDate, columnNames); }}} catch (SQLException e){e.printStackTrace();}return jtable;}public Vector executeQuery(Vector vector, String str){String sql = "select * from emp";vector = new Vector();try{resultSet = statement.executeQuery(sql);while (resultSet.next()){if (str.equals(resultSet.getString(1))){vector.add(resultSet.getString(1));vector.add(resultSet.getString(2));vector.add(resultSet.getString(3));vector.add(resultSet.getString(4));vector.add(resultSet.getString(5));}}} catch (SQLException e){e.printStackTrace();}return vector;}public boolean executeInsert(int i, String str1, String str2, int j, int k){try{pstmt = connection.prepareStatement("insert into emp values(?,?,?,?,?)");pstmt.setInt(1, i);pstmt.setString(2, str1);pstmt.setString(3, str2);pstmt.setInt(4, j);pstmt.setInt(5, k);pstmt.executeUpdate();return true;} catch (SQLException e){return false;}}public boolean executeUpdate(int id, String name, String job, int salary, int deptid){try{pstmt = connection.prepareStatement("update emp set ename=? ,job=? ,sal=? ,deptno=? where empno=?");pstmt.setString(1, name);pstmt.setString(2, job);pstmt.setInt(3, salary);pstmt.setInt(4, deptid);pstmt.setInt(5, id);pstmt.executeUpdate();return true;} catch (SQLException e){return false;}}public boolean executeDelete(int i){try{pstmt = connection.prepareStatement("delete emp where empno=?");pstmt.setInt(1, i);pstmt.executeUpdate();return true;} catch (SQLException e){return false;}}}修改界面:package exercise.emp;import java.awt.Container;import java.awt.GridLayout;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class UpdateJFrame extends JFrame{private JLabel lb = new JLabel();private JTextField tf = new JTextField();private JButton bt = new JButton();public UpdateJFrame(){super("用户修改数据中");setSize(300, 250);setLocation(450, 200);setLayout(new GridLayout(6, 2, 10, 10));setVisible(true);setDefaultCloseOperation(DISPOSE_ON_CLOSE); WindowOperate ml = new WindowOperate();ml.getAddComponentListener(this, 300, 250); }public void add(JLabel lb){this.lb = lb;add(lb);}public void add(JTextField tf){this.tf = tf;add(tf);}public void add(JButton bt){this.bt = bt;add(bt);}}窗体控制:package exercise.emp;import ponentAdapter;import ponentEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;import javax.swing.JFrame;public class WindowOperate{private JFrame jf;private JFrame jf2;private int limitewidth = 0;private int limiteheight = 0;public void getAddComponentListener(final JFrame jf, final int limitewidth,final int limiteheight){this.jf = jf;this.limitewidth = limitewidth;this.limiteheight = limiteheight;jf.addComponentListener(new ComponentAdapter(){public void componentResized(ComponentEvent e){int width = e.getComponent().getWidth();int height = e.getComponent().getHeight();if (width < limitewidth){width = limitewidth;}if (height < limiteheight){height = limiteheight;}jf.setSize(width, height);}});}public void getaddWindowListener(final JFrame jf){this.jf = jf;jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}public void getaddWindowListener(final JFrame jf, final JFrame jf2) {this.jf = jf;this.jf2 = jf2;jf.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){jf.setVisible(false);jf2.setVisible(true);}});}public void refreshWindow(final JFrame jf){jf.setVisible(false);jf.setVisible(true);}}数据判断:package exercise.emp;public class IsOk{public static boolean isNumber(String str){int i;try{i = Integer.parseInt(str);return true;} catch (NumberFormatException e){return false;} } }。