《学生信息的增删改查java)资料》由会员分享,可在线阅读,更多相关《学生信息的增删改查java)资料(6页珍藏版)》请在金锄头文库上搜索。
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(插入信息); b3=new JButton(查看数据); b4=new JBut
3、ton(删除); 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.setSi
4、ze(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)
5、;/关闭窗体后释放资源,若不写这条语句, /则虽然关闭了窗体,但进程还在运行。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,
6、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表的所有信
7、息f2=new JFrame(显示信息);f2.setVisible(true);/设置窗体可见f2.setSize(200,200);/设置窗体大小 Vector rows = new Vector();/用于存储数据库中的行信息 Vector columnHeads = new Vector(); /用于存储数据库中的列标题tryResultSet rs=stml.executeQuery(select * from student); boolean moreRecords = rs.next(); / 定位到达第一条记录,这句话一定要写 ResultSetMetaData rsmd =
8、 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); / 将获得的行列数据信息作为参数
9、重新构造表格视图 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
10、);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型的,exec
11、uteQuery的返回值是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();trySystem.out.println(hi);String mysql=se
12、lect 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(