1、学生信息的增删改查java 学生信息的增删改查注意:此处用到的是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/这个程序的数据是没有写入文件的JFram
2、e 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 JButt
3、on(查看数据); 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)
4、; 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.setDefaultCloseOper
5、ation(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
6、.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.createStatem
7、ent(); 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 =
8、 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
9、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);/显
10、示输出结果 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()+,
11、+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文本框中显示相应的
12、姓名 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.getSt
13、ring(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.setT
14、ext(); 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.s
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1