⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queryframe.java

📁 java数据库编程实例—————————很好很强大第
💻 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 */class queryFrame extends JFrame{  private JPanel contentPane;  int recordCount = 0;  int columnCount = 0;  Connection connection = null;                //定义与数据库进行连接的Connection对象  ResultSet rs = null;                         //定义数据库查询的结果集  Statement statement = null;                  //定义查询数据库的Statement对象  boolean lastQuery = false;                   //上次查询是否成功  Vector vector;                               //定义存储结果集数据的数组  String[] title;                              //定义显示数据表格的标题  AbstractTableModel tm;                       //定义显示数据表格的抽象类  JScrollPane scroll;                          //定义装载数据表格的容器  JTable table;  public queryFrame(String tableName)  {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try    {      frameInit(tableName);    }    catch(Exception ex)    {      ex.printStackTrace();    }  }  private void frameInit(String tableName) throws Exception  //创建显示数据窗口界面  {    contentPane = (JPanel) this.getContentPane();    try    {      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   //指定与数据库连接使用JDBC-ODBC桥驱动程序      String url = "jdbc:odbc:student";                //指定数据源名      connection = DriverManager.getConnection(url);   //与数据源建立连接      statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);  //创建Statement接口实例      String sql = "select * from " + tableName;     //创建取出所选表中所有数据的SQL语句      rs = statement.executeQuery(sql);                //将数据存入结果集中      ResultSetMetaData rsData = rs.getMetaData();     //获取所选表的字段信息      columnCount = rsData.getColumnCount();           //获取所选表的字段个数      title = new String[columnCount];                 //将所选表的字段名称存入数组      for(int i=1; i<=columnCount; i++)      {        title[i-1] = rsData.getColumnLabel(i);      }      while(rs.next())                                 //获取所选表的记录个数      {        recordCount++;      }    }    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();    }    this.setTitle("显示" + tableName + "表中的数据");    this.setSize(new Dimension(columnCount*80+50, recordCount*20+50));//通过数据行数及列数定义窗口大小    vector = new Vector();    tm = new AbstractTableModel() {                  //初始化显示数据的表格      public int getColumnCount() {        return title.length;      }      public int getRowCount() {        return vector.size();      }      public Object getValueAt(int row, int column) {        if(!vector.isEmpty())        {          return ((Vector)vector.elementAt(row)).elementAt(column);        }        else        {          return null;        }      }      public void setValueAt(Object value, int row, int column)      {      }      public String getColumnName(int column)      {        return title[column];      }      public Class getColumnClass(int c)      {        return getValueAt(0,c).getClass();      }      public boolean isCellEditable(int row, int column)      {        return false;      }    };    table = new JTable(tm);    table.setToolTipText("Display Query Result");    table.setAutoResizeMode(table.AUTO_RESIZE_ALL_COLUMNS);    table.setCellSelectionEnabled(false);    table.setShowHorizontalLines(true);    table.setShowVerticalLines(true);    scroll = new JScrollPane(table);    scroll.setBounds(new Rectangle(10, 10, 10+columnCount*80, 10+recordCount*20));//通过数据行数及列数定义表格大小    contentPane.add(scroll,null);    vector.removeAllElements();    tm.fireTableStructureChanged();                  //刷新表格显示结果集中的数据    rs.beforeFirst();    while(rs.next())    {      Vector rec_vector = new Vector();      for(int i=1; i<=columnCount; i++)      {        rec_vector.addElement(rs.getString(i));      }      vector.addElement(rec_vector);    }    tm.fireTableStructureChanged();  }  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      try      {        statement.close();                      //关闭Statement接口实例        connection.close();                   //关闭Connection接口实例      }      catch(Exception ex)      {        ex.printStackTrace();      }      this.dispose();    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -