




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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; JBut
2、ton 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(&quo
3、t;插入信息"); 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);
4、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);publi
5、c 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=Dr
6、iverManager.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"
7、;);/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 Vect
8、or(); /用于存储数据库中的列标题tryResultSet 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); /
9、获得列名(将列名存放至向量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(scroll
10、er, 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
11、.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
12、();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("");trySystem.out.println("hi");Stri
13、ng 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语句用于逐条查询
14、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.
15、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="dele
16、te 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();elsestml.executeUpdate(mysql);JOptionPane.showMessageDialo
17、g(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.
18、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()+"'"ResultSe
19、t rs=stml.executeQuery(mmsql);while(rs.next()mm=rs.getString("name");if(mm="")JOptionPane.showMessageDialog(f1,"修改失败,没有该学生!");rs.close();elsestml.executeUpdate(mysql);JOptionPane.showMessageDialog(f1,"修改成功!");stml.close();conn.close();catch(Exception eee)Syste
20、m.out.println(eee);System.out.println("Congratulations!modify success!");else tryJOptionPane.showMessageDialog(f1,"1若要修改:请在输入学号后面输入修改前的学号," +"n"+"在修改后面输入修改后该学号的姓名,然后点击'修改';"+"n "+"2若要删除,请在删除后面出入要删学生的学号,然后点击'删除';" +"n&qu
21、ot;+"3若要插入信息,请在输入学号后面输入学号,在查姓名后面输入姓名,然后点击'插入信息';" +"n"+" 4若要若要查询数据,直接点击'查看数据';" +"n"+" 5输入学生的学号,再点击'查姓名'可以查找该学号学生的姓名。");catch(Exception e2)System.out.println(e2);catch(Exception ee)System.out.println(ee);public static void mai
22、n(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; / 返回记录 公司印章管理制度一、目的 公司印章是公司对内对外行使权力的标志,也是公司名称的法律体现, 因此,必须对印章进行规范化、合理化的严格管理,以保证公司各项业务的正常运作,由公司指定专人负责管理。二、印章的种类1、 公章,是按照政府规定,由主管部门批准刻制的代表公司权力的印章。2、 专用章,为方便工作专门刻制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村合作种植合同范本
- 公司食堂阿姨劳务合同范本
- 保编合同范本
- 分包合同范本汇编
- 公司安全培训合同范本
- 中介工作合同正式合同范本
- 减速机模具合同范本
- 2025内蒙古建安发展投资集团有限公司招聘14人笔试参考题库附带答案详解
- 公摊电梯合同范例
- bot模式合作合同范本
- 2025年黑龙江农垦职业学院单招职业倾向性测试题库汇编
- 出租共享菜园合同范例
- 【历史】唐朝建立与“贞观之治”课件-2024~2025学年统编版七年级历史下册
- 2024化工园区危险品运输车辆停车场建设规范
- 第1课 精美绝伦的传统工艺 课件 2023-2024学年赣美版初中美术八年级下册
- 云南省地质灾害群测群防手册
- 《植物保护学通论》PPT课件.ppt
- 仓内运营方案
- 江苏省电力条例(2020)
- 上海幼儿园保教质量评价体系
- 《体育测量与评价》课程教学大纲
评论
0/150
提交评论