收藏 分销(赏)

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

上传人:天**** 文档编号:4289436 上传时间:2024-09-03 格式:PDF 页数:66 大小:2.52MB 下载积分:14 金币
下载 相关 举报
学生信息管理系统+Java+MySQL+MyEclipse.pdf_第1页
第1页 / 共66页
学生信息管理系统+Java+MySQL+MyEclipse.pdf_第2页
第2页 / 共66页


点击查看更多>>
资源描述
最后的结果是这个画面,过于简略,也是限于时间和能力了。前言由于二妹前一阵子要写一个简易的学生信息管理系统做毕业设计,要求我用 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,安装 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 目录路径,最前添加.;测试 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 数据库图形式的创建和修改查询表的信息等。,安装 MyEclipse 2016 CI安装完成,下载 myeclipse2016crack.zip 破解以下就无限期使用了,也可以暂时不用破解,有天的使用权限。设置默认工作目录,就是以后你写的工程代码都保存的位置,不建议在盘,由于虚拟机系统安装的时候没分区,就一个盘,这里先将就了。启动的很慢(毕竟不在地球上),给它一点爬行的时间吧。好了,这个就是以后新建 java 工程的工具了8S,ManageStudents 数据库开发S1,打开 Navicate for MySQL 软件,建立与 MySQL 服务器的连接。文件-新建连接输入密码(我这边的 MySQL 数据库安装时设定的密码是:lindejun)点击测试连接,显示连接成功!上图主机名默认的 localhost 如果连接不成功,改成上图的 IP:127.0.0.1S2,双击下图中的 MySQL 服务器,可以看到当前的 MySQL 服务器上面有哪些数据库:S3,新建数据库 StudentsManager 和表格右击上图中的 MySQL 服务器,新建数据库,输入数据库名 StudentsManager双击数据库 ManageStudents,右击表,新建表新建三个表格:StudentsInfo、Classinfo、DepartmentInfo。分别是学生信息表、班级表、部门系表。学生信息表如下图选择学号那行,添加主键:点击黄色的钥匙图标,完成后保存为 StudentsInfo。班级表系部门表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/Uploads/SM_studentinfo.txt into table studentsinfo;创建一个文本文件“SM_studentinfo.txt”,放在C:/ProgramData/MySQL/MySQL Server 5.7/Uploads 文件夹下,每行包含一个记录,每一项之间用 Tab 键进行分隔,如果该字段为空,则用 NULL 表示,并且以在学生信息表中列出的列次序给出,例如:20160201张川男 1990-06-08 河南01 20160220160302马伟男 1992-02-18 江苏02 20160320160103刘邦男 1987-11-25 北京03 20160120160504李彤女 1991-09-22 浙江04 20160520160105胡红女 1990-09-08 河北05 20160120160207端木川 男 1993-08-07 新疆07 201602首先,这个文本文件保存的时候,编码选择 UTF-8,最好用 EditPlus 文本编辑器保存,会有选择 UTF-8 编码。否则可能会报错:ERROR 1300(HY000):Invalid utf8 character string:students.txt 文件不放在 C:ProgramDataMySQLMySQL Server 5.7Uploads这个目录里面,会遇到错误:ERROR 1290(HY000):The MySQL 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重启动此服务。【这里我没有修改,还是按默认的文件夹 uploads】剩下的两个表格的数据插入,同上方法。这里不做详细写出。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,解压到盘下,改名 mysqlconnectorjava,把该目录下的 mysql-connector-java-5.1.39.jar 文件添加到 StudentsManager 工程里,如下图:在,右击 StudentsManager,BuildPath,AddExternalArchives 完成后如下图:M1,右击 StudentsManger,新建一个 Java 类,StudentsManager,工程 Main()方法所在的主类,如下图上图中 StudentsManager.java 文件代码:/*这是学生管理系统的主程序,main();*/导入公共 java 包import java.awt.*;/import javax.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=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,同上,再新建一个 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 里的菜单栏)JMenuBar 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 JMenuItem(删除学生);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 JMenuItem(添加部门系);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/关闭框架窗口时的默认事件方法setDefaultCloseOperation(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.addActionListener(this);jMenuHelpAbout.addActionListener(this);jMenuAddStu.addActionListener(this);jMenuDelStu.addActionListener(this);jMenuStuName.addActionListener(this);jMenuStuId.addActionListener(this);jMenuOnClassId.addActionListener(this);jMenuAddClass.addActionListener(this);jMenuDelClass.addActionListener(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(jMenuFileExit);jMenuBarSM.add(jMenuHelp);/添加菜单项组件到菜单组件jMenuFile.add(jMenuFileExit);/学生信息管理菜单下的选择:按姓名查询,按学号查询,添加学生,删除学生jMenuStudents.add(jMenuStuName);jMenuStudents.add(jMenuStuId);jMenuStudents.add(jMenuAddStu);jMenuStudents.add(jMenuDelStu);/班级信息管理菜单下的选择:按班级号查询,添加班级,删除班级jMenuClass.add(jMenuOnClassId);jMenuClass.add(jMenuAddClass);jMenuClass.add(jMenuDelClass);/部门系信息管理菜单下的选择:按系号查询,添加系,删除系jMenuDepartment.add(jMenuOnDepId);jMenuDepartment.add(jMenuAddDep);jMenuDepartment.add(jMenuDelDep);/帮助菜单下的jMenuHelp.add(jMenuHelpAbout);/添加标签到内容面板contentPane.add(jLabel1);contentPane.add(jLabel2);/设置标签组件的大小和字体jLabel1.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()=jMenuFileExit)System.exit(0);/点击“学生查询”菜单下的“按姓名查询”菜单项if(actionEvent.getSource()=jMenuStuName)/创建“按姓名查询”面板对象InquireOnStuName onName=new InquireOnStuName();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onName);/令界面可见this.setVisible(true);/点击“学生查询”菜单下的“按学号查询”菜单项if(actionEvent.getSource()=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(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);/点击“班级信息管理”菜单下的“按班级编号查询”菜单项if(actionEvent.getSource()=jMenuOnClassId)/创建“编号查询”面板对象InquireOnClassID onClassId=new InquireOnClassID();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onClassId);/令界面可见this.setVisible(true);/点击“班级管理”菜单下的“添加班级”菜单项if(actionEvent.getSource()=jMenuAddClass)/创建添加班级面板对象AddClass 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.setContentPane(delClass);/令界面可见this.setVisible(true);/点击“部门系信息管理”菜单下的“按部门系编号查询”菜单项if(actionEvent.getSource()=jMenuOnDepId)/创建“编号查询”面板对象InquireOnDepID onDepId=new InquireOnDepID();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(onDepId);/令界面可见this.setVisible(true);/点击“部门系管理”菜单下的“添加部门系”菜单项if(actionEvent.getSource()=jMenuAddDep)/创建添加班级面板对象AddDepartment addDep=new AddDepartment();/移除主界面上原有的内容this.remove(this.getContentPane();this.setContentPane(addDep);/令界面可见this.setVisible(true);/点击“部门系管理”菜单下的“删除部门系”菜单项if(actionEvent.getSource()=jMenuDelDep)/创建删除班级面板对象DelDepartment delDep=new DelDepartment();/移除主界面上原有的内容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.setVisible(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:3306/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,passwd);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.swing.*;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();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 Exception/连接数据库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.setBounds(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 actionPerformed(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 姓名:+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,同上,再新建一个InquireOnStuName类,按姓名查找类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;/声明 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 exception)exception.printStackTrace();/面板初始化方法private void jbInit()throws Exception/连接数据库conn=DBConnect.getConn();st=conn.createStatement();/框架的布局this.setLayout(null);/设置各组件的大小jLabel1.setFont(new java.awt.Font(宋体,Font.BOLD,14);jLabel1.setBounds(new Rectangle(90,8,200,34);jTextField1.setBounds(new Rectangle(90,40,200,30);jButton1.setBounds(new Rectangle(110,75,150,30);jScrollPane1.setBounds(new Rectangle(40,115,308,130);/添加按钮动作事件jButton1.addActionListener(this);/添加组件到面板this.add(jScrollPane1);jScrollPane1.getViewport().add(jTextArea1);this.add(jLabel1);this.add(jTextField1);this.add(jButton1);/点击按钮事件public void actionPerformed(ActionEvent e)/获取用户输入的姓名String xingming=jTextField1.getText();/姓名为空,提示输入姓名if(xingming.length()=0)JOptionPane.showMessageDialog(this,请输入名字!);return;/清空文本区原有的内容jTextArea1.setText();/查询是否存在try/利用 st 对象执行 SQL 语句,返回结果集对象/此处用模糊查询 likeResultSet rs=st.executeQuery(select*from studentsinfo where xingming like%+xingming+%);/查不到,提示信息if(!(rs.next()JOptionPane.showMessageDialog(this,没有这个名字!);return;rs=st.executeQuery(select*from studentsinfo where xingming like%+xingming+%);/处理结果集:逐条显示结果集中的记录while(rs.next()jTextArea1.append(学号:+rs.getString(xuehao)+n 姓名:+rs.getString(xingming)+n 性别:+rs.getString(xingbie)+n 出生日期:+rs.getDate(dateString)+n 籍贯:+rs.getString(jiguan)+n 班级号:+rs.getString(ClassId)+nn);/清空文本行的内容jTextField1.setText();catch(Exception ex)/利用消息对话框提示查询失败JOptionPane.showMessageDialog(this,查询失败!);M6,同上,再新建一个 AddStudents 类,添加学生类AddStudents.java 文件代码:/添加学生面板类/导入系统的类包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/创建“添加学生面板”类,并继承 Jpanel 类,和动作监听器借口public class AddStudents extends JPanel implements ActionListener/声明一个静态变量长整型的变量 serialVersionUID,此处不知什么用,但是没有这个,程序会有警告。不写下面这行,也不影响程序运行。private static final long serialVersionUID=1L;/声明一个连接数据库的对象Connection conn;/创建一个声明,用来执行 SQL 语句Statement statement;/*以下是创建组件对象:标签、文本行、单选、按钮的细节*/创建一个标签对象 stuNo 用来显示学号JLabel stuNo=new JLabel(学号:);/创建一个文本输入框对象 stuNo2 用来输入学号字符串JTextField stuNo2=new JTextField();/创建一个标签对象 noFormat 用来显示,注意学号的格式JLabel noFormat=new JLabel(学号是 10 位数,如:2016010203);/创建一个标签对象 stuName 用来显示姓名JLabel stuName=new JLabel(姓名:);/创建一个文本输入框对象 stuName2 用来输入姓名字符串JTextField stuName2=new JTextField();/创建一个标签对象 stuSex
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服