📄 multipagequeryframe.java
字号:
package multipagequery;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.table.*;/** * Title: 使用多窗口查询数据库 * Description: 教学示范 * Copyright: Copyright (c) 2003 * Company: 北京师范大学计算机系 * @author 孙一林 * @version 1.0 */public class MultiPageQueryFrame extends JFrame { private JPanel contentPane; private Button displayButton = new Button(); private Choice tableChoice = new Choice(); private Button getTableButton = new Button(); Connection connection = null; //定义与数据库进行连接的Connection对象 ResultSet rs = null; //定义数据库查询的结果集 public MultiPageQueryFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { //初始化用户界面 contentPane = (JPanel) this.getContentPane(); displayButton.setEnabled(false); displayButton.setLabel("显示表中的数据"); displayButton.setBounds(new Rectangle(231, 212, 135, 38)); displayButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { displayButton_actionPerformed(e); } }); contentPane.setLayout(null); this.setSize(new Dimension(400, 300)); this.setTitle("多窗口显示数据库数据"); tableChoice.setBounds(new Rectangle(93, 64, 204, 36)); getTableButton.setLabel("取得数据库中的表的名称"); getTableButton.setBounds(new Rectangle(26, 213, 175, 38)); getTableButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { getTableButton_actionPerformed(e); } }); contentPane.add(tableChoice, null); contentPane.add(getTableButton, null); contentPane.add(displayButton, null); } protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void getTableButton_actionPerformed(ActionEvent e) { //查询数据库中表的名称并显示 try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //指定与数据库连接使用JDBC-ODBC桥驱动程序 String url = "jdbc:odbc:student"; //指定数据源名 connection = DriverManager.getConnection(url); //与数据源建立连接 DatabaseMetaData dbData = connection.getMetaData(); //获取数据库的信息 String[] type = {"TABLE"}; //指定所需信息为用户表信息 rs = dbData.getTables(null, null, "%", type); //获得数据库中所有用户表的信息 while(rs.next()) { tableChoice.addItem(rs.getString(3)); //获得数据库中所有用户表名 } displayButton.setEnabled(true); getTableButton.setEnabled(false); } catch(SQLException ex){ //捕捉异常 System.out.println("\nERROR:----- SQLException -----\n"); while (ex != null) { System.out.println("Message: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("ErrorCode: " + ex.getErrorCode()); ex = ex.getNextException(); } } catch(Exception ex ) { ex.printStackTrace(); } finally { try { if(connection != null) { connection.close(); //关闭Connection接口实例 } } catch (SQLException ex) { System.out.println("\nERROR:----- SQLException -----\n"); System.out.println("Message: " + ex.getMessage()); System.out.println("SQLState: " + ex.getSQLState()); System.out.println("ErrorCode: " + ex.getErrorCode()); } } } void displayButton_actionPerformed(ActionEvent e) { //产生新的窗口显示数据库数据 String tableName = tableChoice.getSelectedItem(); //指定所要显示的表的名称 queryFrame frame = new queryFrame(tableName); //实现显示数据窗口的实例 frame.show(); //显示窗口 }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -