学生信息管理系统+Java+MySQL+MyEclipse.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 Java MySQL MyEclipse
- 资源描述:
-
最后的结果是这个画面,过于简略,也是限于时间和能力了。 前言 由于二妹前一阵子要写一个简易的学生信息管理系统做毕业设计,要求我用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 6,安装Navicat11.0.9企业版用于图形化开发MySQL 7,安装 MyEclipse 2016 CI和mysql-connector-java-5.1.39.zip插件 8,程序开发,利用MyEclipse 2016 CI,java编程,并连接MySQL数据库。 1安装虚拟机VM12 2在虚拟机中,安装windows10_x64系统企业版 启用共享文件夹功能,方便主机硬盘里面的文件能够在虚拟机系统里面直接使用,不必复制到虚拟机硬盘里面。 3,安装Java【jdk-8u91-windows-x64.exe】 在虚拟机系统win10里面安装和配置java环境变量。 配置环境变量: -->此电脑,右击,属性-->高级系统设置-->环境变量-->系统变量-->找到Path,编辑如下图,添加jdk和jre的bin目录路径,最前添加.; 测试java环境配置: 按住Windows键+R键,运行cmd命令,输入java和javac,按回车键出现下面这两个图片的就成功了 4,Microsoft.NET4.0组件安装 组件在网上下载安装,再安装MySQL,就不会报错。 5,安装 mysql-installer-community-5.7.12.0.msi 选择只安装MySQL服务器,其他组件不需要。 配置,选择Server Machine,剩下的都默认 密码:lindejun 开始菜单,找到安装的MySQL菜单。测试安装成功如下图: 6,安装Navicat11.0.9企业版,网上有破解版下载。该软件方便进行MySQL数据库图形式的创建和修改查询表的信息等。 7,安装 MyEclipse 2016 CI 安装完成,下载myeclipse2016crack.zip破解以下就无限期使用了,也可以暂时不用破解,有30天的使用权限。 设置默认工作目录,就是以后你写的工程代码都保存的位置,不建议在C盘,由于虚拟机系统安装的时候没分区,就一个C盘,这里先将就了。 启动的很慢(毕竟不在地球上),给它一点爬行的时间吧。 好了,这个就是以后新建java工程的工具了 8S,ManageStudents数据库开发 S1,打开Navicate for MySQL软件,建立与MySQL服务器的连接。 文件->新建连接 输入密码(我这边的MySQL数据库安装时设定的密码是:lindejun) 点击测试连接,显示连接成功! 上图主机名默认的localhost如果连接不成功,改成上图的IP:127.0.0.1 S2,双击下图中的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 201602 20160302 马伟 男 1992-02-18 江苏 02 201603 20160103 刘邦 男 1987-11-25 北京 03 201601 20160504 李彤 女 1991-09-22 浙江 04 201605 20160105 胡红 女 1990-09-08 河北 05 201601 20160207 端木川 男 1993-08-07 新疆 07 201602 首先,这个文本文件保存的时候,编码选择UTF-8,最好用EditPlus文本编辑器保存,会有选择UTF-8编码。否则可能会报错: ERROR 1300 (HY000): Invalid utf8 character string: '' students.txt文件不放在C:\ProgramData\MySQL\MySQL Server 5.7\Uploads这个目录里面,会遇到错误: ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 这个错误是:mysql默认对”C:\ProgramData\MySQL\MySQL Server 5.7\Uploads”,这个文件夹内的文件可以操作,如需修改目录为C :/,请打开my.ini文件修改路径。 修改为: Secure-file-priv=”c:/”就可以加载在C盘下的文件了。 重启一下MySQL服务,运行services.msc,打开服务,找到MySQL57 重启动此服务。【这里我没有修改,还是按默认的文件夹uploads】 剩下的两个表格的数据插入,同上方法。这里不做详细写出。 9M,新建一个Java项目:学生信息管理系统--StudentsManager。 File -> New -> Project -> Java Project -> next -> Project Name,此处填写:StudentsManager 配置JRE,如上图,选择。点击Configure JRE..如下图 点击Add.. 下图的Directory目录为刚才安装的Java JRE目录 最后刚刚添加的JRE勾选为默认的,然后ok 点击finish,完成创建 配置JDBC驱动,连接MySQL数据库,添加mysql-connector-java-5.1.39.jar 下载mysql-connector-java-5.1.39.zip,解压到C盘下,改名mysqlconnectorjava,把该目录下的mysql-connector-java-5.1.39.jar文件添加到StudentsManager工程里,如下图: 在,右击StudentsManager,Build Path,Add External Archives.. 完成后如下图: 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.height>screenSize.height) frameSize.height=screenSize.height; if(frameSize.width>screenSize.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 ActionListener { private 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指向要访问的数据库名:managestudents String 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); //创建连接数据库的对象conn Connection 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 ActionListener { private 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(""); } else JOptionPane.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 ActionListener { private 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 exc展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




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



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4714040.html