收藏 分销(赏)

学生信息管理系统+Java+MySQL+MyEclipse.doc

上传人:丰**** 文档编号:4714040 上传时间:2024-10-10 格式:DOC 页数:66 大小:2.33MB
下载 相关 举报
学生信息管理系统+Java+MySQL+MyEclipse.doc_第1页
第1页 / 共66页
学生信息管理系统+Java+MySQL+MyEclipse.doc_第2页
第2页 / 共66页
学生信息管理系统+Java+MySQL+MyEclipse.doc_第3页
第3页 / 共66页
学生信息管理系统+Java+MySQL+MyEclipse.doc_第4页
第4页 / 共66页
学生信息管理系统+Java+MySQL+MyEclipse.doc_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、最后的结果是这个画面,过于简略,也是限于时间和能力了。前言由于二妹前一阵子要写一个简易的学生信息管理系统做毕业设计,要求我用MySQL数据库、Java和Eclipse替她写个小程序交。这个文档是为了记录一个过程,供有需要的java学习者学习和参考。1,安装虚拟机VMware12(为了安装win10系统)2,安装windows10系统(妹子的笔记本系统是win10)3,安装Java【jdk1.8.0_91和jre1.8.0_91】4,安装Microsoft.NET4.0.exe插件(不安装,MySQL软件会报错)5,安装 MySQL 5.7.12,安装Navicat.企业版用于图形化开发y,安装

2、 MyEclipse 2016 CI和mysql-connector-java-5.1.39.zip插件,程序开发,利用MyEclipse 2016 CI,java编程,并连接数据库。1安装虚拟机VM122在虚拟机中,安装windows10_x64系统企业版启用共享文件夹功能,方便主机硬盘里面的文件能够在虚拟机系统里面直接使用,不必复制到虚拟机硬盘里面。3,安装Java【jdk-8u91-windows-x64.exe】在虚拟机系统win10里面安装和配置java环境变量。配置环境变量:-此电脑,右击,属性-高级系统设置-环境变量-系统变量-找到Path,编辑如下图,添加jdk和jre的bin

3、目录路径,最前添加.;测试java环境配置:按住Windows键+R键,运行cmd命令,输入java和javac,按回车键出现下面这两个图片的就成功了,Microsoft.NET4.0组件安装组件在网上下载安装,再安装MySQL,就不会报错。5,安装 mysql-installer-community-5.7.12.0.msi选择只安装MySQL服务器,其他组件不需要。配置,选择Server Machine,剩下的都默认密码:lindejun开始菜单,找到安装的MySQL菜单。测试安装成功如下图:,安装Navicat11.0.9企业版,网上有破解版下载。该软件方便进行MySQL数据库图形式的创

4、建和修改查询表的信息等。,安装 MyEclipse 2016 CI安装完成,下载myeclipse2016crack.zip破解以下就无限期使用了,也可以暂时不用破解,有天的使用权限。设置默认工作目录,就是以后你写的工程代码都保存的位置,不建议在盘,由于虚拟机系统安装的时候没分区,就一个盘,这里先将就了。启动的很慢(毕竟不在地球上),给它一点爬行的时间吧。好了,这个就是以后新建java工程的工具了8S,ManageStudents数据库开发S1,打开Navicate for MySQL软件,建立与MySQL服务器的连接。文件-新建连接输入密码(我这边的MySQL数据库安装时设定的密码是:lin

5、dejun)点击测试连接,显示连接成功!上图主机名默认的localhost如果连接不成功,改成上图的IP:127.0.0.1S2,双击下图中的MySQL服务器,可以看到当前的MySQL服务器上面有哪些数据库:S3,新建数据库StudentsManager和表格右击上图中的MySQL服务器,新建数据库,输入数据库名StudentsManager双击数据库ManageStudents,右击表,新建表新建三个表格:StudentsInfo、Classinfo、DepartmentInfo。分别是学生信息表、班级表、部门系表。学生信息表如下图选择学号那行,添加主键:点击黄色的钥匙图标,完成后保存为St

6、udentsInfo。班级表系部门表S4,添加数据到表中,例如学生表插入一条数据:点击查询,新建查询,输入下面的语句,点击运行,就插入一条记录了。Insert into StudentsInfo values(2016020304,李阳,男,1996-11-22,江苏,201602);其中学号,最后两位表示部门系号,1-6位表示学号,如7-8位的数字表示系号,9-10表示在班级的第几个学生。用SELECT命令,查看一下是否插入成功:以文本方式把多条记录插入数据库的表中mysql load data local infile C:/ProgramData/MySQL/MySQL Server 5

7、.7/Uploads/SM_studentinfo.txt into table studentsinfo;创建一个文本文件“SM_studentinfo.txt”,放在C:/ProgramData/MySQL/MySQL Server 5.7/Uploads文件夹下,每行包含一个记录,每一项之间用Tab键进行分隔,如果该字段为空,则用NULL表示,并且以在学生信息表中列出的列次序给出,例如: 20160201张川男1990-06-08河南0120160220160302马伟男1992-02-18江苏0220160320160103刘邦男1987-11-25北京0320160120160504

8、李彤女1991-09-22浙江0420160520160105胡红女1990-09-08河北0520160120160207端木川男1993-08-07新疆07201602首先,这个文本文件保存的时候,编码选择UTF-8,最好用EditPlus文本编辑器保存,会有选择UTF-8编码。否则可能会报错:ERROR 1300 (HY000): Invalid utf8 character string: students.txt文件不放在C:ProgramDataMySQLMySQL Server 5.7Uploads这个目录里面,会遇到错误:ERROR 1290 (HY000): The MySQ

9、L server is running with the -secure-file-priv option so it cannot execute this statement这个错误是:mysql默认对”C:ProgramDataMySQLMySQL Server 5.7Uploads”,这个文件夹内的文件可以操作,如需修改目录为C :/,请打开my.ini文件修改路径。修改为:Secure-file-priv=”c:/”就可以加载在C盘下的文件了。重启一下MySQL服务,运行services.msc,打开服务,找到MySQL57重启动此服务。【这里我没有修改,还是按默认的文件夹uploa

10、ds】剩下的两个表格的数据插入,同上方法。这里不做详细写出。9M,新建一个Java项目:学生信息管理系统StudentsManager。JavaProjectnextProjectName,此处填写:StudentsManager配置,如上图,选择。点击ConfigureJRE如下图点击Add下图的Directory目录为刚才安装的Java目录最后刚刚添加的勾选为默认的,然后ok点击finish,完成创建配置JDBC驱动,连接MySQL数据库,添加mysql-connector-java-5.1.39.jar下载mysql-connector-java-5.1.39.zip,解压到盘下,改名m

11、ysqlconnectorjava,把该目录下的mysql-connector-java-5.1.39.jar文件添加到StudentsManager工程里,如下图:在,右击StudentsManager,BuildPath,AddExternalArchives完成后如下图:M1,右击StudentsManger,新建一个Java类,StudentsManager,工程Main()方法所在的主类,如下图上图中StudentsManager .java文件代码:/* * 这是学生管理系统的主程序,main(); */导入公共java包import java.awt.*;/import java

12、x.swing.*;/* * author Administrator * 创建日期:2016-06-10 */创建学生管理系统类public class StudentsManager /* * param args */public static void main(String args) /创建主界面窗口MainInterface frame=new MainInterface();/获取屏幕尺寸Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();/获取主界面的窗体尺寸Dimension frameSize

13、=frame.getSize();/令主界面窗体居中if(frameSize.heightscreenSize.height)frameSize.height=screenSize.height;if(frameSize.widthscreenSize.width)frameSize.width=screenSize.width;frame.setLocation(screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);/令主界面显示frame.setVisible(true);M2,同上,再新建一

14、个MainInterface类,窗体主界面类MainInterface.java文件代码:/系统主界面类/导入系统的包import java.awt.*;import java.awt.event.*;import javax.swing.*;/创建主界面类public class MainInterface extends JFrame implements ActionListenerprivate static final long serialVersionUID = 1L;/创建内容面板JPanel contentPane;/创建菜单栏(见267页的图12.1里的菜单栏)JMenuB

15、ar jMenuBarSM=new JMenuBar();JMenu jMenuFile=new JMenu(文件);JMenuItem jMenuFileExit=new JMenuItem(退出);JMenu jMenuStudents=new JMenu(学生信息管理);JMenuItem jMenuStuName=new JMenuItem(按姓名查询);JMenuItem jMenuStuId=new JMenuItem(按学号查询);JMenuItem jMenuAddStu=new JMenuItem(添加学生);JMenuItem jMenuDelStu=new JMenuIt

16、em(删除学生);JMenu jMenuClass=new JMenu(班级信息管理);JMenuItem jMenuOnClassId=new JMenuItem(按班级编号查询);JMenuItem jMenuAddClass=new JMenuItem(添加班级);JMenuItem jMenuDelClass=new JMenuItem(删除班级);JMenu jMenuDepartment=new JMenu(部门系信息管理);JMenuItem jMenuOnDepId=new JMenuItem(按部门系编号查询);JMenuItem jMenuAddDep=new JMenuI

17、tem(添加部门系);JMenuItem jMenuDelDep=new JMenuItem(删除部门系);JMenu jMenuHelp=new JMenu(帮助);JMenuItem jMenuHelpAbout=new JMenuItem(关于);/创建标签,用于显示信息JLabel jLabel1=new JLabel(欢迎使用学生信息管理系统);JLabel jLabel2=new JLabel(2016年06月20日,林德军);/构造方法,创建对象时自动调用public MainInterface()try/关闭框架窗口时的默认事件方法setDefaultCloseOperatio

18、n(EXIT_ON_CLOSE);/调用初始化方法jbInit();catch(Exception exception)exception.printStackTrace();/界面初始化方法private void jbInit() throws Exception/创建内容面板和其布局contentPane =(JPanel) getContentPane();contentPane.setLayout(null);/框架的大小和其标题setSize(new Dimension(400,320);setTitle(学生信息管理系统);/添加事件监听器jMenuFileExit.addAct

19、ionListener(this);jMenuHelpAbout.addActionListener(this);jMenuAddStu.addActionListener(this);jMenuDelStu.addActionListener(this);jMenuStuName.addActionListener(this);jMenuStuId.addActionListener(this);jMenuOnClassId.addActionListener(this);jMenuAddClass.addActionListener(this);jMenuDelClass.addActio

20、nListener(this);jMenuOnDepId.addActionListener(this);jMenuAddDep.addActionListener(this);jMenuDelDep.addActionListener(this);/添加菜单条setJMenuBar(jMenuBarSM);/添加菜单组件到菜单条jMenuBarSM.add(jMenuFile);jMenuBarSM.add(jMenuStudents);jMenuBarSM.add(jMenuClass);jMenuBarSM.add(jMenuDepartment);jMenuBarSM.add(jMen

21、uFileExit);jMenuBarSM.add(jMenuHelp);/添加菜单项组件到菜单组件jMenuFile.add(jMenuFileExit);/学生信息管理菜单下的选择:按姓名查询,按学号查询,添加学生,删除学生jMenuStudents.add(jMenuStuName);jMenuStudents.add(jMenuStuId);jMenuStudents.add(jMenuAddStu);jMenuStudents.add(jMenuDelStu);/班级信息管理菜单下的选择:按班级号查询,添加班级,删除班级jMenuClass.add(jMenuOnClassId);j

22、MenuClass.add(jMenuAddClass);jMenuClass.add(jMenuDelClass);/部门系信息管理菜单下的选择:按系号查询,添加系,删除系jMenuDepartment.add(jMenuOnDepId);jMenuDepartment.add(jMenuAddDep);jMenuDepartment.add(jMenuDelDep);/帮助菜单下的jMenuHelp.add(jMenuHelpAbout);/添加标签到内容面板contentPane.add(jLabel1);contentPane.add(jLabel2);/设置标签组件的大小和字体jLa

23、bel1.setFont(new java.awt.Font(宋体,Font.BOLD,20);jLabel1.setBounds(new Rectangle(65,70,275,55);jLabel2.setFont(new java.awt.Font(宋体,Font.BOLD,16);jLabel2.setBounds(new Rectangle(90,150,200,35);/菜单事件的处理方法public void actionPerformed(ActionEvent actionEvent)/点击“文件”菜单下的“退出”菜单项if(actionEvent.getSource()=j

24、MenuFileExit)System.exit(0);/点击“学生查询”菜单下的“按姓名查询”菜单项if(actionEvent.getSource()=jMenuStuName)/创建“按姓名查询”面板对象InquireOnStuName onName=new InquireOnStuName();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onName);/令界面可见this.setVisible(true);/点击“学生查询”菜单下的“按学号查询”菜单项if(actionEvent.getSourc

25、e()=jMenuStuId)/创建“按学号查询”面板对象InquireOnStuID onXH=new InquireOnStuID();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onXH);/令界面可见this.setVisible(true);/点击“学生管理”菜单下的“添加学生”菜单项if(actionEvent.getSource()=jMenuAddStu)/创建添加学生面板对象AddStudents add=new AddStudents();/移除主界面上原有的内容this.remove(

26、this.getContentPane();this.setContentPane(add);/令界面可见this.setVisible(true);/点击“学生管理”菜单下的“删除学生”菜单项if(actionEvent.getSource()=jMenuDelStu)/创建删除学生面板对象DelStudents delete=new DelStudents();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(delete);/令界面可见this.setVisible(true);/点击“班级信息管理”菜单下

27、的“按班级编号查询”菜单项if(actionEvent.getSource()=jMenuOnClassId)/创建“编号查询”面板对象InquireOnClassID onClassId=new InquireOnClassID();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onClassId);/令界面可见this.setVisible(true);/点击“班级管理”菜单下的“添加班级”菜单项if(actionEvent.getSource()=jMenuAddClass)/创建添加班级面板对象Add

28、Class addClass=new AddClass();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(addClass);/令界面可见this.setVisible(true);/点击“班级管理”菜单下的“删除班级”菜单项if(actionEvent.getSource()=jMenuDelClass)/创建删除班级面板对象DelClass delClass=new DelClass();/移除主界面上原有的内容this.remove(this.getContentPane();this.setConte

29、ntPane(delClass);/令界面可见this.setVisible(true);/点击“部门系信息管理”菜单下的“按部门系编号查询”菜单项if(actionEvent.getSource()=jMenuOnDepId)/创建“编号查询”面板对象InquireOnDepID onDepId=new InquireOnDepID();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onDepId);/令界面可见this.setVisible(true);/点击“部门系管理”菜单下的“添加部门系”菜单项if

30、(actionEvent.getSource()=jMenuAddDep)/创建添加班级面板对象AddDepartment addDep=new AddDepartment();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(addDep);/令界面可见this.setVisible(true);/点击“部门系管理”菜单下的“删除部门系”菜单项if(actionEvent.getSource()=jMenuDelDep)/创建删除班级面板对象DelDepartment delDep=new DelDepartm

31、ent();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(delDep);/令界面可见this.setVisible(true);/点击“帮助”菜单下的“关于”菜单项if(actionEvent.getSource()=jMenuHelpAbout)/创建“关于”面板对象AboutMe about=new AboutMe();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(about);/令界面可见this.setVisibl

32、e(true); M3,同上,再新建一个DBConnect类,连接数据库的类DBConnect.java文件代码如下:/*数据库连接类*/导入sql数据库包import java.sql.*;/创建数据库连接类public class DBConnect/静态方法提高数据库的连接效率public static Connection getConn() throws Exception/驱动程序名String driver=com.mysql.jdbc.Driver;/URL指向要访问的数据库名:managestudentsString url=jdbc:mysql:/127.0.0.1:330

33、6/studentsmanager?useSSL=false;/连接数据库的用户名String user=root;/Java连接MySQL数据库用户的密码String passwd=lindejun;/加载JDBC驱动-返回与带有给定字符串名的类或接口相关联的 Class 对象。/第11行和下面这行不写也没关系,可能与工程中添加的mysql-connector-java-5.1.39-bin.jar有关吧Class.forName(driver);/创建连接数据库的对象connConnection conn=DriverManager.getConnection(url,user,passw

34、d);return conn;/* * 以上7行程序可以简写如下1行: * return DriverManager.getConnection(jdbc:mysql:/127.0.0.1:3306/studentsmanager?useSSL=false,root,lindejun); * 这样写法紧凑,但是可读性比较差。 * */M4,同上,再新建一个InquireOnStuID类,按学号查询学生类。InquireOnStuID.java文件代码:/按学号查询学生面板类/导入系统的类包import java.awt.*;import java.sql.*;import javax.swin

35、g.*;import java.awt.event.*;/创建“学号查询学生”类面板public class InquireOnStuID extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L;/声明连接数据库对象Connection conn;/声明SQL语句对象Statement st;/创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel(请输入待查询的学生的学号:);JTextField xueHAO=new JTextField();

36、JLabel xueHAO2=new JLabel(学号是10位,如2016030607);JButton jButton1=new JButton(查询);JScrollPane jScrollPane1=new JScrollPane();JTextArea jTextArea1=new JTextArea();/构造方法public InquireOnStuID()try/调用初始化方法jbInit();catch(Exception exception)exception.printStackTrace();/面板初始化方法private void jbInit() throws Ex

37、ception/连接数据库conn=DBConnect.getConn();st=conn.createStatement();/框架的布局this.setLayout(null);/设置各组件的大小jLabel1.setFont(new java.awt.Font(宋体,Font.BOLD,16);jLabel1.setBounds(new Rectangle(46,4,222,32);xueHAO.setBounds(new Rectangle(47,37,100,31);xueHAO2.setBounds(new Rectangle(160,37,180,30);jButton1.set

38、Bounds(new Rectangle(47,86,247,30);jScrollPane1.setBounds(new Rectangle(24,130,305,109);/添加按钮动作事件jButton1.addActionListener(this);/添加组件到面板this.add(jScrollPane1);jScrollPane1.getViewport().add(jTextArea1);this.add(jLabel1);this.add(xueHAO);this.add(xueHAO2);this.add(jButton1);/点击按钮事件public void actio

39、nPerformed(ActionEvent e)/获取用户输入的学号String xuehao=xueHAO.getText();/清空文本区原有的内容jTextArea1.setText();try/利用st对象执行SQL语句,返回结果集对象ResultSet rs=st.executeQuery(select * from studentsinfo where xuehao=+xuehao+);/处理结果集:逐条显示结果集中的记录/此处没有使用while,因为学号是唯一的if(rs.next()jTextArea1.append(学号:+rs.getString(xuehao)+n姓名:

40、+rs.getString(xingming)+n性别:+rs.getString(xingbie)+n出生日期:+rs.getDate(dateString)+n籍贯:+rs.getString(jiguan)+n班级号:+rs.getString(ClassId);/清空文本行的内容xueHAO.setText();elseJOptionPane.showMessageDialog(this,没有这个学号!);catch(Exception ex)/利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,查询失败!);M5,同上,再新建一个Inqui

41、reOnStuName类,按姓名查找类InquireOnStuName.java文件代码:/按姓名查询学生面板类/导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“添加学生面板”类public class InquireOnStuName extends JPanel implements ActionListenerprivate static final long serialVersionUID = 1L;/声明连接数据库对象Connection conn

42、;/声明SQL语句对象Statement st;/创建组件对象:标签、文本行、单选JLabel jLabel1=new JLabel(请输入待查询的学生的姓名:);JTextField jTextField1=new JTextField();JButton jButton1=new JButton(查询);JScrollPane jScrollPane1=new JScrollPane();JTextArea jTextArea1=new JTextArea();/构造方法public InquireOnStuName()try/调用初始化方法jbInit();catch(Exception exc

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服