还剩63页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
最后的结果是这个画面,过于简略,也是限于时间和能力了前言由于二妹前一阵子要写一个简易的学生信息管理系统做毕业设计,要求我用MySQL数据库、J__a和Eclipse替她写个小程序交这个文档是为了记录一个过程,供有需要的j__a学习者学习和参考1,__虚拟机VMware12(为了__win10系统)2,__windows10系统(妹子的笔记本系统是win10)8,程序__,利用MyEclipse2016CI,j__a编程,并连接MySQL数据库1__虚拟机VM122在虚拟机中,__windows10_x64系统企业版启用共享文件夹功能,方便主机硬盘里面的文件能够在虚拟机系统里面直接使用,不必__到虚拟机硬盘里面3,__J__a【jdk-8u91-windows-x
64.exe】在虚拟机系统win10里面__和配置j__a环境变量配置环境变量--此电脑,右击,属性--高级系统设置--环境变量--系统变量--找到Path,编辑如下图,添加jdk和jre的bin目录路径,最前添加.;测试j__a环境配置:按住Windows键+R键,运行cmd命令,输入j__a和j__ac,按回车键出现下面这两个__的就成功了组件在网上下载__,再__MySQL,就不会报错选择只__MySQL服务器,其他组件不需要配置,选择Server__chine,剩下的都默认__lindejun开始菜单,找到__的MySQL菜单测试__成功如下图6,__网上有破解版下载该软件方便进行MySQL数据库图形式的创建和修改查询表的信息等7,__MyEclipse2016CI__完成,下载myeclipse2016crack.zip破解以下就无限期使用了,也可以暂时不用破解,有30天的使用权限设置默认工作目录,就是以后你写的工程代码都保存的位置,不建议在C盘,由于虚拟机系统__的时候没分区,就一个C盘,这里先将就了启动的很慢(毕竟不在地球上),给它一点爬行的时间吧好了,这个就是以后新建j__a工程的工具了8S,__nageStudents数据库__S1,打开N__icateforMySQL软件,建立与MySQL服务器的连接文件-新建连接输入__(我这边的MySQL数据库__时设定的__是lindejun)__测试连接,显示连接成功!上图主机名默认的S2,双击下图中的MySQL服务器,可以看到当前的MySQL服务器上面有哪些数据库S3,新建数据库Student__anager和表格右击上图中的MySQL服务器,新建数据库,输入数据库名Student__anager双击数据库__nageStudents右击表,新建表新建三个表格StudentsInfo、Classinfo、DepartmentInfo分别是学生信息表、班级表、部门系表学生信息表如下图选择学号那行,添加主键__黄色的钥匙图标,完成后保存为StudentsInfo班级表系部门表S4,添加数据到表中,例如学生表插入一条数据__查询,新建查询,输入下面的语句,__运行,就插入一条记录了InsertintoStudentsInfovalues2016020304李阳男1996-11-22江苏201602;其中学号,最后两位表示部门系号,1-6位表示学号,如7-8位的数字表示系号,9-10表示在班级的第几个学生用SELECT命令,查看一下是否插入成功以文本方式把多条记录插入数据库的表中mysqlloaddatalocalinfileC:/ProgramData/MySQL/MySQLServer
5.7/Uploads/___studentinfo.___intotablestudentsinfo;创建一个文本文件“___studentinfo.___”放在C:/ProgramData/MySQL/MySQLServer
5.7/Uploads文件夹下,每行包含一个记录,每一项之间用Tab键进行分隔,如果该字段为空,则用NULL表示并且以在学生信息表中列出的列次序给出,例如20160201张川男1990-06-08河南0120160220160302马伟男1992-02-18江苏0220160320160103刘邦男1987-11-25北京0320160120160504李彤女1991-09-22浙江0420160520160105胡红女1990-09-08河北0520160120160207端木川男1993-08-07__07201602首先,这个文本文件保存的时候,编码选择UTF-8,最好用EditPlus文本编辑器保存,会有选择UTF-8编码否则可能会报错ERROR1300HY000:Invalidutf8characterstring:students.___文件不放在C:\ProgramData\MySQL\MySQLServer
5.7\Uploads这个目录里面,会遇到错误ERROR1290HY000:TheMySQLserverisrunningwiththe--secure-file-privoptionsoitcannotexecutethisstatement这个错误是mysql默认对”C:\ProgramData\MySQL\MySQLServer
5.7\Uploads”,这个文件夹内的文件可以操作,如需修改目录为C/,请打开my.ini文件修改路径修改为Secure-file-priv=”c:/”就可以加载在C盘下的文件了重启一下MySQL服务,运行servi__s.msc,打开服务,找到MySQL57重启动此服务【这里___修改,还是按默认的文件夹uploads】剩下的两个表格的数据插入,同上方法这里不做详细写出9M,新建一个J__a项目学生信息管理系统--Student__anagerFile -> New -> Project -> J__a Project -> next -> Project Name,此处填写Student__anager配置JRE,如上图,选择__Configure JRE..如下图__Add..下图的Directory目录为刚才__的J__a JRE目录最后刚刚添加的JRE勾选为默认的,然后ok__finish,完成创建配置JDBC驱动,连接MySQL数据库,jarjar文件添加到Student__anager工程里,如下图在,右击Student__anager,Build Path,Add External Archives..完成后如下图M1,右击Student__anger,新建一个J__a类,Student__anager,工程__in方法所在的主类,如下图上图中Student__anager.j__a文件代码/***这是学生管理系统的主程序,__in;*///导入公共j__a包/***@authorAdministrator*@创建日期2016-06-10*///创建学生管理系统类publicclassStudent__anager{/***@paramargs*/publicstaticvoid__inString[]args{//创建主界面窗口__inInte_____frame=new__inInte_____;//获取屏幕尺寸DimensionscreenSize=Toolkit.getDefaultToolkit.getScreenSize;//获取主界面的窗体尺寸DimensionframeSize=frame.getSize;//令主界面窗体居中ifframeSize.heightscreenSize.heightframeSize.height=screenSize.height;ifframeSize.widthscreenSize.widthframeSize.width=screenSize.width;frame.setLocationscreenSize.width-frameSize.width/2screenSize.height-frameSize.height/2;//令主界面显示frame.setVisibletrue;}}M2,同上,再新建一个__inInte_____类,窗体主界面类__inInte_____.j__a文件代码//系统主界面类//导入系统的包//创建主界面类publicclass__inInte_____extendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//创建内容面板JPanelcontentPane;//创建菜单栏(见267页的图
12.1里的菜单栏)JMenuBarjMenuBar__=newJMenuBar;JMenujMenuFile=newJMenu文件;JMenuItemjMenuFileExit=newJMenuItem退出;JMenujMenuStudents=newJMenu学生信息管理;JMenuItemjMenuStuName=newJMenuItem按姓名查询;JMenuItemjMenuStuId=newJMenuItem按学号查询;JMenuItemjMenuAddStu=newJMenuItem添加学生;JMenuItemjMenuDelStu=newJMenuItem删除学生;JMenujMenuClass=newJMenu班级信息管理;JMenuItemjMenuOnClassId=newJMenuItem按班级编号查询;JMenuItemjMenuAddClass=newJMenuItem添加班级;JMenuItemjMenuDelClass=newJMenuItem删除班级;JMenujMenuDepartment=newJMenu部门系信息管理;JMenuItemjMenuOnDepId=newJMenuItem按部门系编号查询;JMenuItemjMenuAddDep=newJMenuItem添加部门系;JMenuItemjMenuDelDep=newJMenuItem删除部门系;JMenujMenuHelp=newJMenu帮助;JMenuItemjMenuHelpAbout=newJMenuItem关于;//创建标签,用于显示信息JLabeljLabel1=newJLabel欢迎使用学生信息管理系统;JLabeljLabel2=newJLabel2016年06月20日,林德军;//构造方法,创建对象时自动调用public__inInte_____{try{//关闭框架窗口时的默认__方法setDefaultCloseOperationEXIT_ON_CLOSE;//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//界面初始化方法privatevoidjbInitthrowsEx__ption{//创建内容面板和其布局contentPane=JPanelgetContentPane;contentPane.setLayoutnull;//框架的大小和其标题setSizenewDimension400320;setTitle学生信息管理系统;//添加__监听器jMenuFileExit.addActionListenerthis;jMenuHelpAbout.addActionListenerthis;jMenuAddStu.addActionListenerthis;jMenuDelStu.addActionListenerthis;jMenuStuName.addActionListenerthis;jMenuStuId.addActionListenerthis;jMenuOnClassId.addActionListenerthis;jMenuAddClass.addActionListenerthis;jMenuDelClass.addActionListenerthis;jMenuOnDepId.addActionListenerthis;jMenuAddDep.addActionListenerthis;jMenuDelDep.addActionListenerthis;//添加菜单条setJMenuBarjMenuBar__;//添加菜单组件到菜单条jMenuBar__.addjMenuFile;jMenuBar__.addjMenuStudents;jMenuBar__.addjMenuClass;jMenuBar__.addjMenuDepartment;jMenuBar__.addjMenuFileExit;jMenuBar__.addjMenuHelp;//添加菜单项组件到菜单组件jMenuFile.addjMenuFileExit;//学生信息管理菜单下的选择按姓名查询,按学号查询,添加学生,删除学生jMenuStudents.addjMenuStuName;jMenuStudents.addjMenuStuId;jMenuStudents.addjMenuAddStu;jMenuStudents.addjMenuDelStu;//班级信息管理菜单下的选择按班级号查询,添加班级,删除班级jMenuClass.addjMenuOnClassId;jMenuClass.addjMenuAddClass;jMenuClass.addjMenuDelClass;//部门系信息管理菜单下的选择按系号查询,添加系,删除系jMenuDepartment.addjMenuOnDepId;jMenuDepartment.addjMenuAddDep;jMenuDepartment.addjMenuDelDep;//帮助菜单下的jMenuHelp.addjMenuHelpAbout;//添加标签到内容面板contentPane.addjLabel1;contentPane.addjLabel2;//设置标签组件的大小和字体jLabel
1.setBoundsnewRectangle657027555;jLabel
2.setBoundsnewRectangle9015020035;}//菜单__的处理方法publicvoidactionPerformedActionEventactionEvent{//__“文件”菜单下的“退出”菜单项ifactionEvent.getSour__==jMenuFileExit{System.exit0;}//__“学生查询”菜单下的“按姓名查询”菜单项ifactionEvent.getSour__==jMenuStuName{//创建“按姓名查询”面板对象InquireOnStuNameonName=newInquireOnStuName;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneonName;//令界面可见this.setVisibletrue;}//__“学生查询”菜单下的“按学号查询”菜单项ifactionEvent.getSour__==jMenuStuId{//创建“按学号查询”面板对象InquireOnStuIDonXH=newInquireOnStuID;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneonXH;//令界面可见this.setVisibletrue;}//__“学生管理”菜单下的“添加学生”菜单项ifactionEvent.getSour__==jMenuAddStu{//创建添加学生面板对象AddStudentsadd=newAddStudents;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneadd;//令界面可见this.setVisibletrue;}//__“学生管理”菜单下的“删除学生”菜单项ifactionEvent.getSour__==jMenuDelStu{//创建删除学生面板对象DelStudentsdelete=newDelStudents;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPanedelete;//令界面可见this.setVisibletrue;}//__“班级信息管理”菜单下的“按班级编号查询”菜单项ifactionEvent.getSour__==jMenuOnClassId{//创建“编号查询”面板对象InquireOnClassIDonClassId=newInquireOnClassID;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneonClassId;//令界面可见this.setVisibletrue;}//__“班级管理”菜单下的“添加班级”菜单项ifactionEvent.getSour__==jMenuAddClass{//创建添加班级面板对象AddClassaddClass=newAddClass;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneaddClass;//令界面可见this.setVisibletrue;}//__“班级管理”菜单下的“删除班级”菜单项ifactionEvent.getSour__==jMenuDelClass{//创建删除班级面板对象DelClassdelClass=newDelClass;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPanedelClass;//令界面可见this.setVisibletrue;}//__“部门系信息管理”菜单下的“按部门系编号查询”菜单项ifactionEvent.getSour__==jMenuOnDepId{//创建“编号查询”面板对象InquireOnDepIDonDepId=newInquireOnDepID;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneonDepId;//令界面可见this.setVisibletrue;}//__“部门系管理”菜单下的“添加部门系”菜单项ifactionEvent.getSour__==jMenuAddDep{//创建添加班级面板对象AddDepartmentaddDep=newAddDepartment;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneaddDep;//令界面可见this.setVisibletrue;}//__“部门系管理”菜单下的“删除部门系”菜单项ifactionEvent.getSour__==jMenuDelDep{//创建删除班级面板对象DelDepartmentdelDep=newDelDepartment;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPanedelDep;//令界面可见this.setVisibletrue;}//__“帮助”菜单下的“关于”菜单项ifactionEvent.getSour__==jMenuHelpAbout{//创建“关于”面板对象AboutMeabout=newAboutMe;//移除主界面上原有的内容this.removethis.getContentPane;this.setContentPaneabout;//令界面可见this.setVisibletrue;}}}M3,同上,再新建一个DBConnect类,连接数据库的类DBConnect.j__a文件代码如下/*数据库连接类*///导入sql数据库包//创建数据库连接类publicclassDBConnect{//静态方法提高数据库的连接效率publicstaticConnectiongetConnthrowsEx__ption{//驱动程序名//URL指向要访问的数据库名:__nagestudents//连接数据库的用户名Stringuser=root;//J__a连接MySQL数据库用户的__Stringpasswd=lindejun;//加载JDBC驱动---返回与带有给定字符串名的类或接口相关联的Class对象Class.forNamedriver;//创建连接数据库的对象connConnectionconn=Driver__nager.getConnectionurluserpasswd;returnconn;/***以上7行程序可以简写如下1行__nageruseSSL=falserootlindejun;*这样写法紧凑,但是可读性比较差**/}}M4,同上,再新建一个InquireOnStuID类,按学号查询学生类InquireOnStuID.j__a文件代码//按学号查询学生面板类//导入系统的类包//创建“学号查询学生”类面板publicclassInquireOnStuIDextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象标签、文本行、单选JLabeljLabel1=newJLabel请输入待查询的学生的学号;JTextField___HAO=newJTextField;JLabel___HAO2=newJLabel学号是10位,如2016030607;JButtonjButton1=newJButton查询;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicInquireOnStuID{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//面板初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小jLabel
1.setBoundsnewRectangle46422232;___HAO.setBoundsnewRectangle473710031;___HAO
2.setBoundsnewRectangle1603718030;jButton
1.setBoundsnewRectangle478624730;jScrollPane
1.setBoundsnewRectangle24130305109;//添加按钮动作__jButton
1.addActionListenerthis;//添加组件到面板this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;this.addjLabel1;this.add___HAO;this.add___HAO2;this.addjButton1;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的学号String___hao=___HAO.getText;//清空文本区原有的内容jTextArea
1.setText;try{//利用st对象执行SQL语句,返回结果集对象ResultSetrs=st.executeQueryselect*fromstudentsinfowhere___hao=+___hao+;//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为学号是唯一的ifrs.next{jTextArea
1.append学号:+rs.getString___hao+\n姓名:+rs.getStringxingming+\n性别:+rs.getStringxingbie+\n出生日期:+rs.getDatedateString+\n籍贯:+rs.getStringjiguan+\n班级号:+rs.getStringClassId;//清空文本行的内容___HAO.setText;}elseJOptionPane.showMessageDialogthis没有这个学号!;}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}}}M5,同上,再新建一个InquireOnStuName类,按姓名查找类InquireOnStuName.j__a文件代码//按姓名查询学生面板类//导入系统的类包//创建“添加学生面板”类publicclassInquireOnStuNameextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象标签、文本行、单选JLabeljLabel1=newJLabel请输入待查询的学生的姓名;JTextFieldjTextField1=newJTextField;JButtonjButton1=newJButton查询;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicInquireOnStuName{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//面板初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小jLabel
1.setBoundsnewRectangle90820034;jTextField
1.setBoundsnewRectangle904020030;jButton
1.setBoundsnewRectangle1107515030;jScrollPane
1.setBoundsnewRectangle40115308130;//添加按钮动作__jButton
1.addActionListenerthis;//添加组件到面板this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;this.addjLabel1;this.addjTextField1;this.addjButton1;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的姓名Stringxingming=jTextField
1.getText;//姓名为空,提示输入姓名ifxingming.length==0{JOptionPane.showMessageDialogthis请输入名字!;return;}//清空文本区原有的内容jTextArea
1.setText;//查询是否存在try{//利用st对象执行SQL语句,返回结果集对象//此处用模糊查询likeResultSetrs=st.executeQueryselect*fromstudentsinfowherexingminglike%+xingming+%;//查不到,提示信息if!rs.next{JOptionPane.showMessageDialogthis没有这个名字!;return;}rs=st.executeQueryselect*fromstudentsinfowherexingminglike%+xingming+%;//处理结果集:逐条显示结果集中的记录whilers.next{jTextArea
1.append学号:+rs.getString___hao+\n姓名:+rs.getStringxingming+\n性别:+rs.getStringxingbie+\n出生日期:+rs.getDatedateString+\n籍贯:+rs.getStringjiguan+\n班级号:+rs.getStringClassId+\n\n;//清空文本行的内容jTextField
1.setText;}}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}}}M6,同上,再新建一个AddStudents类,添加学生类AddStudents.j__a文件代码//添加学生面板类//导入系统的类包//创建“添加学生面板”类,并继承Jpanel类,和动作监听器借口publicclassAddStudentsextendsJPanelimplementsActionListener{//声明一个静态变量长整型的变量serialVersionUID,此处不知什么用,但是没有这个程序会有警告不写下面这行,也不影响程序运行privatestaticfinallongserialVersionUID=1L;//声明一个连接数据库的对象Connectionconn;//创建一个声明,用来执行SQL语句Statementstatement;/**以下是创建组件对象标签、文本行、单选、按钮的细节*///创建一个标签对象stuNo用来显示学号JLabelstuNo=newJLabel学号;//创建一个文本输入框对象stuNo2用来输入学号字符串JTextFieldstuNo2=newJTextField;//创建一个标签对象noFor__t用来显示,注意学号的格式JLabelnoFor__t=newJLabel学号是10位数如:2016010203;//创建一个标签对象stuName用来显示姓名JLabelstuName=newJLabel姓名;//创建一个文本输入框对象stuName2用来输入姓名字符串JTextFieldstuName2=newJTextField;//创建一个标签对象stu___用来显示性别JLabelstu___=newJLabel性别;//创建一个单选按钮对象____boy用来选择“男”JRadioButton____boy=newJRadioButton男;//创建一个单选按钮对象____girl用来选择“女”JRadioButton____girl=newJRadioButton女;//创建一个单选按钮组合对象____group,把上面两个单选按钮组合一起,确保只有一个单选按钮被选中ButtonGroup____group=newButtonGroup;//创建一个标签对象stuBirthDate用来显示出生日期JLabelstuBirthDate=newJLabel出生日期;//创建一个文本输入框对象stuBirthDate2用来输入出生日期字符串JTextFieldstuBirthDate2=newJTextField;//创建一个标签对象BirthDateFor__t用来显示,注意出生日期的格式JLabelBirthDateFor__t=newJLabel注意!出生日期格式为:1990-02-15;//创建一个标签对象stuBirthPla__用来显示出生地JLabelstuBirthPla__=newJLabel籍贯;//创建一个文本输入框对象stuBirthPla__2用来输入出生地字符串JTextFieldstuBirthPla__2=newJTextField;//创建一个按钮对象addStu用来添加学生信息到数据库JButtonaddStu=newJButton添加学生;//添加学生面板类的构造方法publicAddStudents{try{//调用添加学生的初始化函数jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//添加学生图形界面的初始化函数,初始化各变量,组件privatevoidjbInitthrowsEx__ption{//调用DBConnect.j__a内的getConn方法初始化conn对象,来连接数据库conn=DBConnect.getConn;//连接数据库后,初始化statement对象,来将SQL语句发送到数据库statement=conn.createStatement;/**先把当前窗体容器this,的布局管理器置空,再添加新的组件到当前窗体容器中*/this.setLayoutnull;/**设置各组件的大小和在当前窗体中的位置*///标签学号的大小和位置//setBoundsnewRectanglexywh__组件并调整其大小由x和y指定左上角的新位置,由w和h指定新的大小使其符合新的有界矩形stuNo.setBoundsnewRectangle21136525;//文本输入框学号,的大小和位置stuNo
2.setBoundsnewRectangle651510025;//标签学号格式,的大小和位置noFor__t.setBoundsnewRectangle1801319025;//标签姓名,的大小和位置stuName.setBoundsnewRectangle21515322;//文本输入框姓名,的大小和位置stuName
2.setBoundsnewRectangle655015025;//标签性别,的大小和位置stu___.setBoundsnewRectangle21866127;//单选按钮性别男,的大小和位置____boy.setBoundsnewRectangle70856525;//单选按钮性别女,的大小和位置____girl.setBoundsnewRectangle150858525;//设置默认,单选男按钮被选中____boy.setSelectedtrue;//标签出生日期,的大小和位置stuBirthDate.setBoundsnewRectangle11226525;//文本输入框出生日期,的大小和位置stuBirthDate
2.setBoundsnewRectangle6512010025;//标签出生日期格式,的大小和位置BirthDateFor__t.setBoundsnewRectangle6514521925;//标签出生地,的大小和位置stuBirthPla__.setBoundsnewRectangle211805525;//文本输入框出生地,的大小和位置stuBirthPla__
2.setBoundsnewRectangle6518015025;//按钮添加学生,的大小和位置addStu.setBoundsnewRectangle10321718030;/***对“添加学生”按钮,添加动作__监听器,监听当前窗体*当按下“添加学生”按钮,会自动调用actionPerformedActionEvente方法**/addStu.addActionListenerthis;/**把上面初始化完成的各类组件都添加到当前窗体容器内*///添加标签,学号this.addstuNo;//添加文本输入框,学号this.addstuNo2;//添加标签,学号格式this.addnoFor__t;//添加标签,姓名this.addstuName;//添加文本输入框,学号this.addstuName2;//添加标签,性别this.addstu___;//添加单选按钮,男this.add____boy;//添加单选按钮,女this.add____girl;//再把上面两个单选按钮,添加到按钮组合对象____group内____group.add____boy;____group.add____girl;//添加标签,出生日期this.addstuBirthDate;//添加文本输入框,出生日期this.addstuBirthDate2;//添加标签,出生日期格式this.addBirthDateFor__t;//添加标签,出生地this.addstuBirthPla__;//添加文本输入框,出生地this.addstuBirthPla__2;//添加按钮,添加学生this.addaddStu;}//__按钮添加学生,有个监听器__监听该动作publicvoidactionPerformedActionEvente{//变量___hao用来搜集学号信息String___hao=stuNo
2.getText;//变量xingming用来搜集姓名信息Stringxingming=stuName
2.getText;//变量xingbie用来搜集性别信息Stringxingbie=;//如果单选按钮“男”被选择,那么xingbie字符串内容为“男”if____boy.isSelectedxingbie=男;//如果单选按钮“女”被选择,那么xingbie字符串内容为“女”if____girl.isSelectedxingbie=女;//变量dateString用来搜集出生日期信息StringdateString=stuBirthDate
2.getText;//变量jiguan用来搜集出生地信息Stringjiguan=stuBirthPla__
2.getText;//学号已经存在的不允许插入!返回并提醒错误该学号已经存在try{ResultSetrs=statement.executeQueryselect*fromstudentsinfowhere___hao=+___hao+;ifrs.next{JOptionPane.showMessageDialogthis该学号已经存在,请检查后再输入!;return;}}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息ex.printStackTra__;}//调用CheckDateFor__t.j__a中的CheckDateFor__t类创建一个对象//该对象调用checkDateFor__t方法检查输入的日期是否合法CheckDateFor__tcdf=newCheckDateFor__t;//加一个输入检查,姓名为非空,且学号是10位数,且出生日期格式正确,否则重新输入if!___hao.length==10xingming.length0cdf.checkDateFor__tdateString{JOptionPane.showMessageDialogthis输入数据格式错误,请检查后再输入!;return;}//异常处理try{//利用statement对象,执行SQL语句,进行插入操作statement.executeUpdateinsertintostudentsinfovalues+___hao++xingming++xingbie++dateString++jiguan++___hao.substring06+;//利用消息对话框提示插入操作成功//JOptionPane有助于方便地弹出要求用户提供值或向其发出通知的标准对话框JOptionPane.showMessageDialogthis插入学生信息成功!;//清空文本输入框学号、姓名、出生日期、籍贯的内容stuNo
2.setText;stuName
2.setText;stuBirthDate
2.setText;stuBirthPla__
2.setText;}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialogthis输入数据格式错误,请检查后输入!;ex.printStackTra__;}}}M7,同上,再新建一个DelStudents类,删除学生DelStudents.j__a文件代码//删除学生面板类//导入系统的类包//创建“删除学生面板”类publicclassDelStudentsextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象JLabeljLabel1=newJLabel请输入待删除的学生的学号:;JLabeljLabel2=newJLabel10位数如:2016040506;JTextFieldjTextField1=newJTextField;JButtonjButton1=newJButton删除;JButtonjButton2=newJButton确认删除;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicDelStudents{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//界面初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小jLabel
1.setBoundsnewRectangle401022030;jTextField
1.setBoundsnewRectangle260108025;jLabel
2.setBoundsnewRectangle2303014030;jButton
1.setBoundsnewRectangle1206015030;jButton
2.setBoundsnewRectangle10021017030;jScrollPane
1.setBoundsnewRectangle8060220140;//添加按钮动作__jButton
1.addActionListenerthis;jButton
2.addActionListenerthis;//添加组件到面板this.addjLabel1;this.addjTextField1;this.addjLabel2;this.addjButton1;this.addjButton2;jButton
2.setVisiblefalse;this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;jScrollPane
1.setVisiblefalse;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的学号String___hao=jTextField
1.getText;//学号不存在的不允许删除!返回并提醒错误该学号已经不存在try{ResultSetrs1=st.executeQueryselect*fromstudentsinfowhere___hao=+___hao+;if!rs
1.next{JOptionPane.showMessageDialogthis该学号不存在,请检查后再删除!;return;}}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息ex.printStackTra__;}ife.getSour__==jButton1{//删除之前显示要删除的学生信息jButton
1.setVisiblefalse;jScrollPane
1.setVisibletrue;jButton
2.setVisibletrue;try{//利用st对象执行SQL语句,返回结果集对象ResultSetrs2=st.executeQueryselect*fromstudentsinfowhere___hao=+___hao+;//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为学号是唯一的ifrs
2.next{jTextArea
1.append学号:+rs
2.getString___hao+\n姓名:+rs
2.getStringxingming+\n性别:+rs
2.getStringxingbie+\n出生日期:+rs
2.getDatedateString+\n籍贯:+rs
2.getStringjiguan+\n班级号:+rs
2.getStringClassId;}elseJOptionPane.showMessageDialogthis没有这个学号!;}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}return;}//要求用户确认删除//ifJOptionPane.showConfirmDialogthis确认要删除吗?==JOptionPane.YES_OPTIONelse{try{//利用st对象执行SQL删除操作st.executeUpdatedeletefromstudentsinfowhere___hao=+___hao+;//利用消息对话框提示删除操作成功JOptionPane.showMessageDialogthis删除操作成功!;//清空输入学号的文本行jTextField
1.setText;//每次确认删除之后清空原来要删除的学生信息,否则,下次删除还会有上次刪除的学生信息jTextArea
1.setText;jScrollPane
1.setVisiblefalse;jButton
2.setVisiblefalse;jButton
1.setVisibletrue;}catchEx__ptionex{//利用消息对话框提示不能删除JOptionPane.showMessageDialogthis删除操作执行失败!;}}}}M8,同上,再新建一个InquireOnClassID类,按班级号查询InquireOnClassID.j__a文件代码//导入系统的类包//创建“按班号查询班级面板”类publicclassInquireOnClassIDextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象标签、文本行、单选JLabel__ID=newJLabel请输入待查询的班级号;JTextFieldjTextField1=newJTextField;JLabel__ID2=newJLabel班级号是6位,如201603;JButtonjButton1=newJButton查询;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicInquireOnClassID{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//面板初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小__ID.setBoundsnewRectangle46422232;jTextField
1.setBoundsnewRectangle473710031;__ID
2.setBoundsnewRectangle1603718030;jButton
1.setBoundsnewRectangle478613030;jScrollPane
1.setBoundsnewRectangle47130250109;//添加按钮动作__jButton
1.addActionListenerthis;//添加组件到面板this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;this.add__ID;this.addjTextField1;this.add__ID2;this.addjButton1;jScrollPane
1.setVisiblefalse;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的班级号Stringbanji=jTextField
1.getText;//清空文本区原有的内容jTextArea
1.setText;jScrollPane
1.setVisibletrue;try{//利用st对象执行SQL语句,返回结果集对象ResultSetrs=st.executeQueryselect*fromclassinfowhereClassId=+banji+;//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为学号是唯一的ifrs.next{jTextArea
1.append班级号:+rs.getStringClassId+\n班主任:+rs.getStringClassTeacher+\n班级人数:+rs.getStringStuNum+\n系号:+rs.getStringXiId;//清空文本行的内容jTextField
1.setText;}elseJOptionPane.showMessageDialogthis没有这个班号!;}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}}}M8,同上,再新建一个AddClass类AddClass.j__a文件代码//添加班级面板类//导入系统的类包//创建“添加班级面板”类,并继承Jpanel类,和动作监听器借口publicclassAddClassextendsJPanelimplementsActionListener{//声明一个静态变量长整型的变量serialVersionUID,此处不知什么用,但是没有这个程序会有警告不写下面这行,也不影响程序运行privatestaticfinallongserialVersionUID=1L;//声明一个连接数据库的对象Connectionconn;//创建一个声明,用来执行SQL语句Statementstatement;/**以下是创建组件对象标签、文本行、单选、按钮的细节*///创建一个标签对象ClassID用来显示学号JLabelClassID=newJLabel班级号;//创建一个文本输入框对象ClassID2用来输入学号字符串JTextFieldClassID2=newJTextField;//创建一个标签对象ClassID3用来显示,注意学号的格式JLabelClassID3=newJLabel班级号是6位数,如:201601;//创建一个标签对象XiID用来显示所属部门系号JLabelXiID=newJLabel所属系;//创建一个文本输入框对象XiID2用来输入所属部门系号JTextFieldXiID2=newJTextField;//创建一个标签对象XiID3用来显示,注意学号的格式JLabelXiID3=newJLabel部门系号是2位数,如:01;//创建一个标签对象ClassTeacher用来显示班主任JLabelClassTeacher=newJLabel班主任;//创建一个文本输入框对象ClassTeacher2用来输入班主任JTextFieldClassTeacher2=newJTextField;//创建一个标签对象ClassNum用来显示班级人数JLabelClassNum=newJLabel班级人数;//创建一个文本输入框对象ClassNum2用来输入班级人数JTextFieldClassNum2=newJTextField;//创建一个按钮对象addClass用来添加班级信息到数据库JButtonaddClass=newJButton添加班级;//添加学生面板类的构造方法publicAddClass{try{//调用添加学生的初始化函数jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//添加班级图形界面的初始化函数,初始化各变量,组件privatevoidjbInitthrowsEx__ption{//调用DBConnect.j__a内的getConn方法初始化conn对象,来连接数据库conn=DBConnect.getConn;//连接数据库后,初始化statement对象,来将SQL语句发送到数据库statement=conn.createStatement;/**先把当前窗体容器this,的布局管理器置空,再添加新的组件到当前窗体容器中*/this.setLayoutnull;/**设置各组件的大小和在当前窗体中的位置*///setBoundsnewRectanglexywh__组件并调整其大小由x和y指定左上角的新位置,由w和h指定新的大小使其符合新的有界矩形//标签班级号的大小和位置ClassID.setBoundsnewRectangle21206025;//文本输入框班级号,的大小和位置ClassID
2.setBoundsnewRectangle802010025;//标签班级号格式,的大小和位置ClassID
3.setBoundsnewRectangle1902017025;//标签系号,的大小和位置XiID.setBoundsnewRectangle18556525;//文本输入框系号,的大小和位置XiID
2.setBoundsnewRectangle805510025;//标签系号格式,的大小和位置XiID
3.setBoundsnewRectangle1905517025;//标签班主任,的大小和位置ClassTeacher.setBoundsnewRectangle21926025;//文本输入框班主任,的大小和位置ClassTeacher
2.setBoundsnewRectangle809210025;//标签班级人数,的大小和位置ClassNum.setBoundsnewRectangle121306525;//文本输入框班级人数,的大小和位置ClassNum
2.setBoundsnewRectangle8013010025;addClass.setBoundsnewRectangle11018018030;/***对“添加学生”按钮,添加动作__监听器,监听当前窗体*当按下“添加学生”按钮,会自动调用actionPerformedActionEvente方法**/addClass.addActionListenerthis;/**把上面初始化完成的各类组件都添加到当前窗体容器内*///添加标签,班级号this.addClassID;//添加文本输入框,班级号this.addClassID2;//添加标签,班级号格式this.addClassID3;//添加标签,系号this.addXiID;//添加文本输入框,系号this.addXiID2;//添加标签,系号格式this.addXiID3;//添加标签,班主任this.addClassTeacher;//添加文本输入框,班主任this.addClassTeacher2;//添加标签,班级人数this.addClassNum;//添加文本输入框,班级人数this.addClassNum2;//添加按钮,添加班级this.addaddClass;}//__按钮添加学生,有个监听器__监听该动作publicvoidactionPerformedActionEvente{//变量banjihao用来搜集班级号信息Stringbanjihao=ClassID
2.getText;//变量xihao用来搜集系号Stringxihao=XiID
2.getText;//变量bzr用来搜集班主任Stringbzr=ClassTeacher
2.getText;//变量renshu用来搜集出生地信息Stringrenshu=ClassNum
2.getText;//班级号已经存在的不允许插入!返回并提醒错误该学号已经存在try{ResultSetrs=statement.executeQueryselect*fromclassinfowhereClassId=+banjihao+;ifrs.next{JOptionPane.showMessageDialogthis该班级号已经存在,请检查后再输入!;return;}}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息ex.printStackTra__;}//加一个输入检查,班级号为非空且是6位数,系号非空且是2位数,否则重新输入if!banjihao.length==6xihao.length==2{JOptionPane.showMessageDialogthis输入数据格式错误,请检查后再输入!;return;}//异常处理try{//利用statement对象,执行SQL语句,进行插入操作statement.executeUpdateinsertintoclassinfovalues+banjihao++bzr++renshu++xihao+;//利用消息对话框提示插入操作成功//JOptionPane有助于方便地弹出要求用户提供值或向其发出通知的标准对话框JOptionPane.showMessageDialogthis插入班级信息成功!;//清空文本输入框学号、姓名、出生日期、籍贯的内容ClassID
2.setText;XiID
2.setText;ClassTeacher
2.setText;ClassNum
2.setText;}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialogthis输入数据格式错误,请检查后输入!;ex.printStackTra__;}}}M8,同上,再新建一个DelClass类DelClass.j__a文件代码//删除班级面板类//导入系统的类包//创建“删除班级面板”类publicclassDelClassextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象JLabeljLabel1=newJLabel请输入待删除的班级的班级号;JTextFieldjTextField1=newJTextField;JLabeljLabel2=newJLabel6位数如:201604;JButtonjButton1=newJButton删除;JButtonjButton2=newJButton确认删除;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicDelClass{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//界面初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小jLabel
1.setBoundsnewRectangle301021030;jTextField
1.setBoundsnewRectangle250138025;jLabel
2.setBoundsnewRectangle2504012030;jButton
1.setBoundsnewRectangle1007017030;jButton
2.setBoundsnewRectangle10020517030;jScrollPane
1.setBoundsnewRectangle9080180110;//添加按钮动作__jButton
1.addActionListenerthis;jButton
2.addActionListenerthis;//添加组件到面板this.addjLabel1;this.addjTextField1;this.addjLabel2;this.addjButton1;this.addjButton2;jButton
2.setVisiblefalse;this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;jScrollPane
1.setVisiblefalse;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的班级号Stringbanjihao=jTextField
1.getText;//班级号不存在的不允许删除!返回并提醒错误该班级号已经不存在try{ResultSetrs1=st.executeQueryselect*fromclassinfowhereClassId=+banjihao+;if!rs
1.next{JOptionPane.showMessageDialogthis该班级号不存在,请检查后再删除!;return;}}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息ex.printStackTra__;}//删除之前显示要删除的班级信息jButton
1.setVisiblefalse;jScrollPane
1.setVisibletrue;jButton
2.setVisibletrue;try{//利用st对象执行SQL语句,返回结果集对象ResultSetrs2=st.executeQueryselect*fromclassinfowhereClassId=+banjihao+;//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为班级号是唯一的,而姓名不是,所以在InquireOnNamePanel.j__a里使用了whileifrs
2.next{jTextArea
1.append班级号:+rs
2.getStringClassId+\n班主任:+rs
2.getStringClassTeacher+\n班级人数:+rs
2.getStringStuNum+\n系号:+rs
2.getStringXiId;}elseJOptionPane.showMessageDialogthis没有这个班级号!;}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}//__删除之后,要等待用户查看班级信息之后,再确认删除ife.getSour__==jButton1return;//删除按钮__只能执行到上面这里就返回了剩下的留给确认删除//要求用户确认删除ifJOptionPane.showConfirmDialogthis确认要删除吗?==JOptionPane.YES_OPTION{try{//利用st对象执行SQL删除操作st.executeUpdatedeletefromclassinfowhereClassId=+banjihao+;//利用消息对话框提示删除操作成功JOptionPane.showMessageDialogthis删除操作成功!;//清空输入班级号的文本行jTextField
1.setText;//每次确认删除之后清空原来要删除的班级信息,否则,下次删除还会有上次刪除的班级信息jTextArea
1.setText;jScrollPane
1.setVisiblefalse;jButton
2.setVisiblefalse;jButton
1.setVisibletrue;}catchEx__ptionex{//利用消息对话框提示不能删除JOptionPane.showMessageDialogthis删除操作执行失败!;}}}}M8,同上,再新建一个InquireOnDepID类InquireOnDepID.j__a文件代码//按系号查询部门系面板类//导入系统的类包//创建“添加部门系面板”类publicclassInquireOnDepIDextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象标签、文本行、单选JLabeljLabel1=newJLabel请输入待查询的部门系号;JTextFieldxiHAO=newJTextField;JLabelxiHAO2=newJLabel系号是2位,如01;JButtonjButton1=newJButton查询;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicInquireOnDepID{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//面板初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小jLabel
1.setBoundsnewRectangle46422232;xiHAO.setBoundsnewRectangle473710031;xiHAO
2.setBoundsnewRectangle1603718030;jButton
1.setBoundsnewRectangle478624730;jScrollPane
1.setBoundsnewRectangle24130305109;//添加按钮动作__jButton
1.addActionListenerthis;//添加组件到面板this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;this.addjLabel1;this.addxiHAO;this.addxiHAO2;this.addjButton1;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的系号Stringxiid=xiHAO.getText;//清空文本区原有的内容jTextArea
1.setText;try{//利用st对象执行SQL语句,返回结果集对象ResultSetrs=st.executeQueryselect*fromdepartmentinfowherexiid=+xiid+;//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为系号是唯一的ifrs.next{jTextArea
1.append系号:+rs.getStringXiId+\n系名:+rs.getStringxiName+\n系主任:+rs.getStringxiTeacher;//清空文本行的内容xiHAO.setText;}elseJOptionPane.showMessageDialogthis没有这个系号!;}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}}}M8,同上,再新建一个AddDepartment类AddDepartment.j__a文件代码//添加部门系面板类//导入系统的类包//创建“添加部门系面板”类,并继承Jpanel类,和动作监听器借口publicclassAddDepartmentextendsJPanelimplementsActionListener{//声明一个静态变量长整型的变量serialVersionUID,此处不知什么用,但是没有这个程序会有警告不写下面这行,也不影响程序运行privatestaticfinallongserialVersionUID=1L;//声明一个连接数据库的对象Connectionconn;//创建一个声明,用来执行SQL语句Statementstatement;/**以下是创建组件对象标签、文本行、单选、按钮的细节*///创建一个标签对象DepNum用来显示系号JLabelDepNum=newJLabel系号;//创建一个文本输入框对象DepNum2用来输入系号字符串JTextFieldDepNum2=newJTextField;//创建一个标签对象xiHaoFor__t用来显示,注意系号的格式JLabelxiHaoFor__t=newJLabel系号2位数,如:02;//创建一个标签对象DepName用来显示系名JLabelDepName=newJLabel系名;//创建一个文本输入框对象DepName2用来输入系名字符串JTextFieldDepName2=newJTextField;//创建一个标签对象xiTeacher用来显示系主任JLabelxiTeacher=newJLabel系主任;//创建一个文本输入框对象xiTeacher2用来输入系主任字符串JTextFieldxiTeacher2=newJTextField;//创建一个按钮对象addDep用来添加部门系信息到数据库JButtonaddDep=newJButton添加部门系;//添加部门系面板类的构造方法publicAddDepartment{try{//调用添加部门系的初始化函数jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//添加部门系图形界面的初始化函数,初始化各变量,组件privatevoidjbInitthrowsEx__ption{//调用DBConnect.j__a内的getConn方法初始化conn对象,来连接数据库conn=DBConnect.getConn;//连接数据库后,初始化statement对象,来将SQL语句发送到数据库statement=conn.createStatement;/**先把当前窗体容器this,的布局管理器置空,再添加新的组件到当前窗体容器中*/this.setLayoutnull;/**设置各组件的大小和在当前窗体中的位置*///标签系号的大小和位置//setBoundsnewRectanglexywh__组件并调整其大小由x和y指定左上角的新位置,由w和h指定新的大小使其符合新的有界矩形DepNum.setBoundsnewRectangle60206525;//文本输入框系号,的大小和位置DepNum
2.setBoundsnewRectangle105205025;//标签系号格式,的大小和位置xiHaoFor__t.setBoundsnewRectangle1702017025;//标签系名,的大小和位置DepName.setBoundsnewRectangle60655322;//文本输入框系名,的大小和位置DepName
2.setBoundsnewRectangle1056515025;//标签系主任,的大小和位置xiTeacher.setBoundsnewRectangle501106525;//文本输入框系主任,的大小和位置xiTeacher
2.setBoundsnewRectangle10511010025;//按钮添加部门系,的大小和位置addDep.setBoundsnewRectangle10515015030;/***对“添加部门系”按钮,添加动作__监听器,监听当前窗体*当按下“添加部门系”按钮,会自动调用actionPerformedActionEvente方法**/addDep.addActionListenerthis;/**把上面初始化完成的各类组件都添加到当前窗体容器内*///添加标签,系号this.addDepNum;//添加文本输入框,系号this.addDepNum2;//添加标签,系号格式this.addxiHaoFor__t;//添加标签,系名this.addDepName;//添加文本输入框,系号this.addDepName2;//添加标签,系主任this.addxiTeacher;//添加文本输入框,系主任this.addxiTeacher2;//添加按钮,添加部门系this.addaddDep;}//__按钮添加部门系,有个监听器__监听该动作publicvoidactionPerformedActionEvente{//变量xiID用来搜集系号信息StringxiID=DepNum
2.getText;//变量xiName用来搜集系名信息StringxiName=DepName
2.getText;//变量xiT用来搜集系主任信息StringxiTeacher=xiTeacher
2.getText;//系号已经存在的不允许插入!返回并提醒错误该系号已经存在try{ResultSetrs=statement.executeQueryselect*fromdepartmentinfowherexiID=+xiID+;ifrs.next{JOptionPane.showMessageDialogthis该系号已经存在,请检查后再输入!;return;}}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息ex.printStackTra__;}//加一个输入检查,系名为非空,且系号是2位数,且系名非空,否则重新输入if!xiID.length==2xiName.length0{JOptionPane.showMessageDialogthis输入数据格式错误,请检查后再输入!;return;}//异常处理try{//利用statement对象,执行SQL语句,进行插入操作statement.executeUpdateinsertintodepartmentinfovalues+xiID++xiName++xiTeacher+;//利用消息对话框提示插入操作成功//JOptionPane有助于方便地弹出要求用户提供值或向其发出通知的标准对话框JOptionPane.showMessageDialogthis插入部门系信息成功!;//清空文本输入框系号、系名、系主任内容DepNum
2.setText;DepName
2.setText;xiTeacher
2.setText;}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息JOptionPane.showMessageDialogthis输入数据格式错误,请检查后输入!;ex.printStackTra__;}}}M8,同上,再新建一个DelDepartment类DelDepartment.j__a文件代码//
4.删除部门系面板类//导入系统的类包//创建“删除部门系面板”类publicclassDelDepartmentextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//声明连接数据库对象Connectionconn;//声明SQL语句对象Statementst;//创建组件对象JLabeljLabel1=newJLabel请输入待删除的部门系号:;JLabeljLabel2=newJLabel2位数如:05;JTextFieldjTextField1=newJTextField;JButtonjButton1=newJButton删除;JButtonjButton2=newJButton确认删除;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicDelDepartment{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//界面初始化方法privatevoidjbInitthrowsEx__ption{//连接数据库conn=DBConnect.getConn;st=conn.createStatement;//框架的布局this.setLayoutnull;//设置各组件的大小jLabel
1.setBoundsnewRectangle401022030;jTextField
1.setBoundsnewRectangle255108025;jLabel
2.setBoundsnewRectangle2553012030;jButton
1.setBoundsnewRectangle1206015030;jButton
2.setBoundsnewRectangle10021017030;jScrollPane
1.setBoundsnewRectangle8060220140;//添加按钮动作__jButton
1.addActionListenerthis;jButton
2.addActionListenerthis;//添加组件到面板this.addjLabel1;this.addjTextField1;this.addjLabel2;this.addjButton1;this.addjButton2;jButton
2.setVisiblefalse;this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;jScrollPane
1.setVisiblefalse;}//__按钮__publicvoidactionPerformedActionEvente{//获取用户输入的系号Stringxihao=jTextField
1.getText;//系号不存在的返回并提醒错误该系号已经不存在try{ResultSetrs1=st.executeQueryselect*fromdepartmentinfowherexiid=+xihao+;if!rs
1.next{JOptionPane.showMessageDialogthis该系号不存在,请检查后再删除!;return;}}catchEx__ptionex{//如果捕获到异常,利用消息对话框提示不能插入,并显示异常的信息ex.printStackTra__;}ife.getSour__==jButton1{//删除之前显示要删除的部门系信息jButton
1.setVisiblefalse;jScrollPane
1.setVisibletrue;jButton
2.setVisibletrue;try{//利用st对象执行SQL语句,返回结果集对象ResultSetrs2=st.executeQueryselect*fromdepartmentinfowherexiid=+xihao+;//处理结果集:逐条显示结果集中的记录//此处没有使用while,因为系号是唯一的,而系名不是,所以在InquireOnNamePanel.j__a里使用了whileifrs
2.next{jTextArea
1.append系号:+rs
2.getStringXiId+\n系名:+rs
2.getStringXiName+\n系主任:+rs
2.getStringxiTeacher;}elseJOptionPane.showMessageDialogthis没有这个系号!;}catchEx__ptionex{//利用消息对话框提示查询失败JOptionPane.showMessageDialogthis查询失败!;}return;}//要求用户确认删除else{try{//利用st对象执行SQL删除操作st.executeUpdatedeletefromdepartmentinfowherexiid=+xihao+;//利用消息对话框提示删除操作成功JOptionPane.showMessageDialogthis删除操作成功!;//清空输入系号的文本行jTextField
1.setText;//每次确认删除之后清空原来要删除的部门系信息,否则,下次删除还会有上次刪除的部门系信息jTextArea
1.setText;jScrollPane
1.setVisiblefalse;jButton
2.setVisiblefalse;jButton
1.setVisibletrue;}catchEx__ptionex{//利用消息对话框提示不能删除JOptionPane.showMessageDialogthis删除操作执行失败!;}}}}M8,同上,再新建一个AboutMe类AboutMe.j__a文件代码//
2.对话框类//导入系统的类包//创建对话框类publicclassAboutMeextendsJPanel{privatestaticfinallongserialVersionUID=1L;//创建标签对象JLabeljLabel1=newJLabel学生信息管理系统;JLabeljLabel2=newJLabel__:林德军;JLabeljLabel3=newJLabel版本号:20160620;JLabeljLabel4=newJLabel简介;JScrollPanejScrollPane1=newJScrollPane;JTextAreajTextArea1=newJTextArea;//构造方法publicAboutMe{try{//调用初始化方法jbInit;}catchEx__ptionex__ption{ex__ption.printStackTra__;}}//界面初始化方法privatevoidjbInitthrowsEx__ption{//面板的布局this.setLayoutnull;//设置标签组件的大小jLabel
1.setBoundsnewRectangle401024939;jLabel
2.setBoundsnewRectangle404017428;jLabel
3.setBoundsnewRectangle407012627;jLabel
4.setBoundsnewRectangle4011012627;jScrollPane
1.setBoundsnewRectangle80115280120;+程序的功能很简单,有待__,写的很是草率,如有疏漏,敬请谅解!\n+本人__:929156887,如有需要__,再__我吧;//添加标签到内容面板this.addjLabel1;this.addjLabel2;this.addjLabel3;this.addjLabel4;this.addjScrollPane1;jScrollPane
1.getViewport.addjTextArea1;setSize190160;}}M8,同上,再新建一个CheckDateFor__t类CheckDateFor__t.j__a文件代码/***检查日期格式是否为yyyy-mm-dd:如2012-02-28*2004-02-30无效*2014-02-29有效*2001-02-29无效*2012-01-32无效*@paramstrDate接收日期字符串变量*@return返回值**/publicclassCheckDateFor__t{publicbooleancheckDateFor__tStringstrDate{//如果输入的字符串等于10位,如yyyy-MM-dd,则继续下去,否则直接返回错误提示ifstrDate.length!=10returnfalse;/***______DateFor__t是一个以与语言环境有关的方式来格式化和解析日期的具体类*它是DateFor__t的子类*它允许进行格式化(日期-文本)、解析(文本-日期)和规范化*______DateFor__t使得可以选择任何用户定义的日期-时间格式的模式*但是,仍然建议通过DateFor__t中的getTimeInstan__、getDateInstan__或getDateTimeInstan__来创建日期-时间格式器*每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器*可以根据需要使用applyPattern方法来修改格式模式有关使用这些方法的更多信息,请参阅DateFor__t**/______DateFor__tsdf=new______DateFor__tyyyy-MM-dd;try{//类Date表示特定的瞬间,精确到毫秒/***DateFor__t.parseStrings*尝试把字符串s解释为日期和时间的表示形式*如果尝试成功,则返回指示的时间,用该时间与历元(1970年1月1日,00:00:00GMT)的时间差来表示(以毫秒为单位)*如果尝试失败,则抛出IllegalArgumentEx__ption*/DatetemDate=sdf.parsestrDate;Stringstr=sdf.for__ttemDate;//出生日期合法,返回trueifstr.equalsstrDatereturntrue;//出生日期不合法,返回falseelsereturnfalse;}catchEx__ptione{e.printStackTra__;returnfalse;}}}最后__绿色的Run__nageStudentsInfo按钮,运行工程结果是这个。