1、 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
2、);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.addActionLis
3、tener(this); direction.addActionListener(this); public void actionPerformed(ActionEvent e) f1.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/关闭窗体后释放资源,若不写这条语句, /则虽然关闭了窗体,但进程还在运行。 try/这个try是在整个action中的,用于捕获建立连接异常 String dburl=jdbc:odbc:mydb; /mydb是我建立的access数据源 Connection conn=DriverManager
4、.getConnection(dburl);/这四条语句是用来在整个action事件中建立连接的 Statement stml=conn.createStatement(); /也就不用在每一个button事件(b1,b2,b3,b4)中重复写这四条语句 /以上四条语句也可以改写为下面这四条语句: / String dburl=driver=Microsoft Access Driver (*.mdb);DBQ=C:db1.mdb / Connection conn = DriverManager.getConnection(dburl); / Statement stml = conn.cr
5、eateStatement(); 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
6、(); / 定位到达第一条记录,这句话一定要写 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 =
7、 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/显示输出结果 Stri
8、ng s2=rs.getString(name rs.close(); stml.close(); conn.close(); /使用完后要记得关闭所有连接 else if(e.getSource()=b2)/插入信息(在t1文本框中输入要插入的学号, /在t2文本框中输入要插入的姓名,然后点击插入信息 stml.executeUpdate(insert into student values(+t1.getText()+,+t2.getText()+)/excute的返回值是boolean型的,excuteUpdate的返回值是int型的,executeQuery的返回值是ResultSet
9、型的 stml.close(); conn.close(); JOptionPane.showMessageDialog(f1,插入成功! else if(e.getSource()=b1)/查姓名(在t1文本框中输入学号, /在t2文本框中显示相应的姓名 t3.setText( t4.setText( String mysql=select name from student where id= /ResultSet rs=stml.executeQuery( ResultSet rs=stml.executeQuery(mysql); String sn= while(rs.next()
10、/此处while语句用于逐条查询 sn=rs.getString( if(sn=) /如果没有找到该学生的姓名 JOptionPane.showMessageDialog(f1,没有该学生! else t2.setText(sn); else if(e.getSource()=b4) /按学号删除记录(删除学号和姓名) try /在t3文本框中输入要删除的学号 t1.setText( t2.setText( t4.setText( String yy= String mmsql=select * from student where id=+t3.getText()+delete from s
11、tudent where id= ResultSet rs=stml.executeQuery(mmsql); yy=rs.getString( if(yy=)删除失败,没有该学生! else stml.executeUpdate(mysql); JOptionPane.showMessageDialog(f1,删除成功! else if(e.getSource()=modify)/修改姓名:在t1文本框中输入要修改的学号, try / 在t4文本框中输入修改后的名字 /JOptionPane.showMessageDialog(f1,请在输入学号后面输入修改前的学号,在修改后面输入修改后该学
12、号的姓名! t2.setText( String mm= String mmsql= String mysql=update student set name=+t4.getText()+ where id= ResultSet rs=stml.executeQuery(mmsql); while(rs.next() mm=rs.getString( if(mm=修改失败,没有该学生! rs.close(); else stml.executeUpdate(mysql);修改成功! stml.close(); conn.close(); else tryJOptionPane.showMess
13、ageDialog(f1,1若要修改:请在输入学号后面输入修改前的学号, +n+ 在修改后面输入修改后该学号的姓名,然后点击修改;+n 2若要删除,请在删除后面出入要删学生的学号,然后点击删除 +3若要插入信息,请在输入学号后面输入学号,在查姓名后面输入姓名,然后点击插入信息 4若要若要查询数据,直接点击查看数据 5输入学生的学号,再点击查姓名可以查找该学号学生的姓名。 ); public static void main(String args) new myrandom(); public Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)throws SQLException /该方法获取下一行记录 Vector currentRow = new Vector(); / 定义一个向量,用于存放记录 currentRow.addElement(rs.getString(i); / 获取记录 return currentRow; / 返回记录
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1