收藏 分销(赏)

学生信息的增删改查.doc

上传人:快乐****生活 文档编号:2553312 上传时间:2024-05-31 格式:DOC 页数:10 大小:136.04KB
下载 相关 举报
学生信息的增删改查.doc_第1页
第1页 / 共10页
学生信息的增删改查.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述
学生信息的增删改查 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 10 个人收集整理 勿做商业用途 学生信息管理系统 1 引言      对学生的根本信息进展简单操作,可按学号进展查询、修改、删除操作 注意:此处用到的是access数据库。 系统实现: package example; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import java.sql.*; import java.util.Vector; class myrandom extends JFrame implements ActionListener{ //这个程序的数据是没有写入文件的 JFrame f1,f2;  JButton b1,b2,b3,b4,modify,direction; JLabel a1; JTextField t1,t2,t3,t4; JTable table; myrandom〔){ ﻩtable=new JTable〔); f1=new JFrame("学生信息系统"); f1.setVisible(true);//设置窗体可见 a1=new JLabel("输入学号:"); t1=new JTextField(100); ﻩt2=new JTextField(100〕; ﻩb1=new JButton("查姓名:"〕; b2=new JButton("插入信息");    b3=new JButton〔"查看数据");   b4=new JButton("删除");   t3=new JTextField(100);   modify=new JButton("修改"); direction=new JButton〔"操作说明"〕;   t4=new JTextField(100〕; f1.setLayout(new GridLayout(6,2));//设置窗体的分布为四行二列 ﻩ f1.add(a1);f1.add(t1);//参加窗体 ﻩf1.add〔b1);f1.add(t2); f1.add(b2);f1.add〔b3〕; ﻩf1.add(b4);f1.add〔t3); ﻩf1.add(modify);f1.add(t4); ﻩf1.add(direction); ﻩf1.setSize(200,200);//设置窗体大小 b1.addActionListener(this); b2.addActionListener(this);//设置按钮事件 ﻩb3.addActionListener(this); b4.addActionListener(this); modify.addActionListener(this);ﻩ ﻩdirection.addActionListener(this〕; } ﻩpublic void actionPerformed(ActionEvent e) { ﻩf1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体后释放资源,假设不写这条语句, ﻩ                               //那么虽然关闭了窗体,但进程还在运行。 ﻩtry{//这个try是在整个action中的,用于捕获建立连接异常 ﻩ Class.forName〔"sun.jdbc.odbc.JdbcOdbcDriver"); ﻩString dburl="jdbc:odbc:mydb";          //mydb是我建立的access数据源 ﻩ Connection conn=DriverManager.getConnection(dburl〕;//这四条语句是用来在整个action事件中建立连接的 Statement stml=conn.createStatement();    //也就不用在每一个button事件〔b1,b2,b3,b4)中重复写这四条语句 ﻩ ﻩ//以上四条语句也可以改写为下面这四条语句: ﻩ//ﻩString dburl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\db1.mdb"; ﻩﻩ//ﻩClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ﻩﻩ//ﻩConnection conn = DriverManager.getConnection(dburl); ﻩ // Statement stml = conn.createStatement〔); ﻩ if(e.getSource()==b3){//查看数据〔查看数据库中student表的所有信息 ﻩﻩﻩ ﻩf2=new JFrame("显示信息"〕; ﻩﻩf2.setVisible(true〕;//设置窗体可见 f2.setSize(200,200);//设置窗体大小 ﻩﻩ   Vector rows = new Vector(〕;//用于存储数据库中的行信息 ﻩ   Vector columnHeads = new Vector〔〕; //用于存储数据库中的列标题 ﻩ try{ ﻩ ﻩResultSet rs=stml.executeQuery("select * from student"〕; ﻩ boolean moreRecords = rs.next〔); // 定位到达第一条记录,这句话一定要写 ﻩﻩ ﻩ ﻩ ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息 ﻩ         for (int i = 1; i <= rsmd.getColumnCount(); ++i) ﻩ        columnHeads.addElement(rsmd.getColumnName(i)〕; // 获得列名〔将列名存放至向量columnHeads)         do        {        rows.addElement(getNextRow〔rs, rsmd));   //获取下一行记录      }  ﻩ       while (rs.next〔)); // 利用循环获得所有记录 ﻩ        JTable jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图           jTable.setSize(new Dimension(383, 81));       JScrollPane scroller = new JScrollPane(jTable〕;// 创立带有滚动条的面板,并将表格视图参加 ﻩ       f2.add(scroller, BorderLayout.CENTER〕; // 将面板重新参加溶器中 ﻩ       f2.validate(); // 验证此容器及其所有子组件 ﻩﻩﻩﻩwhile(rs.next()){ ﻩ String ss=rs.getString〔"id"〕;//显示输出结果 ﻩﻩﻩﻩﻩString s2=rs.getString("name"); ﻩ ﻩSystem.out.println(ss+s2); ﻩ ﻩ} ﻩ rs.close〔〕; ﻩﻩ stml.close(); ﻩﻩﻩﻩconn.close(); //使用完后要记得关闭所有连接 ﻩﻩﻩ}catch〔Exception ee〕{System.out.println(ee);} ﻩﻩ} ﻩ ﻩﻩelse if(e.getSource(〕==b2)//插入信息〔在t1文本框中输入要插入的学号, ﻩ {          //在t2文本框中输入要插入的姓名,然后点击插入信息 ﻩﻩﻩtry{   stml.executeUpdate〔"insert into student values('"+t1.getText()+"','"+t2.getText〔)+"')"); //excute的返回值是boolean型的,excuteUpdate的返回值是int型的,executeQuery的返回值是ResultSet型的   stml.close();  conn.close();ﻩﻩ ﻩﻩﻩ}catch(Exception e1〕{System.out.println〔e1);} ﻩﻩSystem.out.println("Insert successfully!"〕; ﻩJOptionPane.showMessageDialog(f1,"插入成功!"〕; ﻩﻩ} ﻩﻩ else if(e.getSource〔)==b1〕//查姓名〔在t1文本框中输入学号, ﻩ {              //在t2文本框中显示相应的姓名 ﻩﻩ t3.setText〔""); ﻩ t4.setText(""〕; ﻩ try{ ﻩﻩﻩSystem.out.println〔"hi"); ﻩﻩ String mysql="select name from student where id='"+t1.getText()+"'"; ﻩ ﻩ//ResultSet rs=stml.executeQuery("select name from student where id='"+t1.getText〔)+"'"〕; ﻩ ﻩResultSet rs=stml.executeQuery〔mysql); ﻩ ﻩString sn=""; ﻩﻩ while(rs.next(〕)     //此处while语句用于逐条查询 ﻩ ﻩ{ ﻩ ﻩ ﻩ sn=rs.getString("name"); ﻩﻩ System.out.println〔"学号为:"+t1.getText()+" 姓名是:"+sn); ﻩ ﻩ } ﻩ if(sn==""〕    //如果没有找到该学生的姓名 ﻩ ﻩﻩJOptionPane.showMessageDialog(f1,"没有该学生!"); ﻩ else ﻩ       t2.setText(sn); ﻩ ﻩ rs.close(〕; ﻩﻩstml.close(); ﻩﻩ conn.close(〕; ﻩ ﻩ}catch(Exception ee){System.out.println(ee);} ﻩﻩ} ﻩ ﻩ else if(e.getSource(〕==b4〕 { //按学号删除记录〔删除学号和姓名〕 ﻩ ﻩtry{  //在t3文本框中输入要删除的学号 ﻩ ﻩﻩt1.setText(""〕; ﻩﻩ ﻩt2.setText(""); ﻩ t4.setText(""); ﻩﻩﻩSystem.out.println("hi"); ﻩﻩﻩﻩString yy=""; String mmsql="select * from student where id='"+t3.getText〔〕+"'"; ﻩString mysql="delete from student where id='"+t3.getText(〕+"'"; ﻩﻩ ﻩResultSet rs=stml.executeQuery(mmsql); ﻩwhile〔rs.next()〕{ ﻩﻩﻩﻩyy=rs.getString("name");ﻩ ﻩﻩ ﻩ} ﻩﻩ if(yy==""){ ﻩ ﻩﻩJOptionPane.showMessageDialog〔f1,"删除失败,没有该学生!"); ﻩ ﻩrs.close(); ﻩﻩ } ﻩﻩﻩ else{ ﻩﻩ stml.executeUpdate(mysql); JOptionPane.showMessageDialog(f1,"删除成功!"); ﻩ ﻩ } ﻩﻩﻩﻩstml.close〔〕; ﻩ ﻩ conn.close(〕; }catch(Exception ee){System.out.println(ee);} ﻩSystem.out.println("success to delete!"); ﻩ} ﻩ ﻩﻩelse if〔e.getSource()==modify){//修改姓名:在t1文本框中输入要修改的学号, ﻩtry{ // 在t4文本框中输入修改后的名字 //JOptionPane.showMessageDialog(f1,"请在输入学号后面输入修改前的学号,在修改后面输入修改后该学号的姓名!"); ﻩﻩ t2.setText(""); t3.setText(""〕; ﻩ ﻩString mm=""; ﻩ ﻩString mmsql="select * from student where id='"+t1.getText()+"'"; ﻩﻩ String mysql="update student set name='"+t4.getText(〕+"' where id='"+t1.getText()+"'"; ﻩ ResultSet rs=stml.executeQuery(mmsql); ﻩﻩﻩwhile〔rs.next(〕){ ﻩﻩﻩmm=rs.getString("name"); ﻩﻩﻩ} if〔mm==""){ JOptionPane.showMessageDialog(f1,"修改失败,没有该学生!"); ﻩ rs.close();} ﻩﻩelse{ ﻩﻩﻩstml.executeUpdate(mysql〕; ﻩ ﻩJOptionPane.showMessageDialog(f1,"修改成功!"); ﻩﻩ} ﻩﻩ stml.close(); conn.close(); ﻩﻩ}catch(Exception eee){System.out.println(eee〕;} ﻩ System.out.println〔"Congratulations!modify success!"); ﻩﻩ} ﻩﻩelse { ﻩ try{JOptionPane.showMessageDialog(f1,"1假设要修改:请在输入学号后面输入修改前的学号," +"\\\n"+ ﻩ ﻩ "在修改后面输入修改后该学号的姓名,然后点击'修改';"+"\\\n "+"2假设要删除,请在删除后面出入要删学生的学号,然后点击'删除';" + ﻩﻩﻩ "\\\n"+"3假设要插入信息,请在输入学号后面输入学号,在查姓名后面输入姓名,然后点击'插入信息';" + ﻩ "\\\n"+" 4假设要假设要查询数据,直接点击'查看数据';" + ﻩﻩﻩ "\\\n"+" 5输入学生的学号,再点击'查姓名'可以查找该学号学生的姓名。" ﻩ ﻩﻩﻩ〕; ﻩﻩﻩﻩ }catch(Exception e2){System.out.println〔e2);} } ﻩﻩ ﻩﻩ }catch(Exception ee){System.out.println(ee〕;} ﻩ } ﻩ ﻩpublic static void main〔String[] args){ ﻩ new myrandom〔); } public Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)throws SQLException //该方法获取下一行记录 ﻩ{     Vector currentRow = new Vector(); // 定义一个向量,用于存放记录      for (int i = 1; i <= rsmd.getColumnCount〔); ++i) ﻩ       currentRow.addElement(rs.getString(i〕); // 获取记录 ﻩ   return currentRow; // 返回记录   } 运行后效果如图: }
展开阅读全文

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


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服