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

📄 tabledisplay.java~2~

📁 数据库查询结果表格输出实例
💻 JAVA~2~
字号:
/** * <p>Title: 以表格显示数据库查询结果</p> * <p>Description: 第五章例子</p> * <p>Copyright: Copyright (c) 2006</p> * <p>Company: </p> * @author 苏年乐 * @version 1.0 */import java.sql.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;public class TableDisplay extends JFrame {   //数据库变量定义   private Connection connection;   private Statement statement;   private ResultSet resultSet;   private ResultSetMetaData rsMetaData;   //GUI变量定义   private JTable table;   private JTextArea inputQuery;   private JButton submitQuery;   public TableDisplay()   {      //Form的标题      super( "输入SQL语句,按提交按钮查看结果。" );      //url中指定ODBC中设置的DSN名称      String url = "jdbc:odbc:AddressBook";      String username = "";      String password = "";      //加载驱动程序以连接数据库      try {         Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );         connection = DriverManager.getConnection(            url, username, password );      }      //捕获加载驱动程序异常      catch ( ClassNotFoundException cnfex ) {         System.err.println(            "装载 JDBC/ODBC 驱动程序失败。" );         cnfex.printStackTrace();         System.exit( 1 );  // terminate program      }      //捕获连接数据库异常      catch ( SQLException sqlex ) {         System.err.println( "无法连接数据库" );         sqlex.printStackTrace();         System.exit( 1 );  // terminate program      }      //如果数据库连接成功,则建立GUI      //SQL语句      String test="SELECT * FROM TblAddressBook";      inputQuery = new JTextArea( test, 4, 30 );      submitQuery = new JButton( "查询" );      //Button事件      submitQuery.addActionListener(         new ActionListener() {            public void actionPerformed( ActionEvent e )            {               getTable();            }         }      );      JPanel topPanel = new JPanel();      topPanel.setLayout( new BorderLayout() );      //将"输入查询"编辑框布置到 "CENTER"      topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER );      //将"提交查询"按钮布置到 "SOUTH"      topPanel.add( submitQuery, BorderLayout.SOUTH );      table = new JTable();      Container c = getContentPane();      c.setLayout( new BorderLayout() );      //将"topPanel"编辑框布置到 "NORTH"      c.add( topPanel, BorderLayout.NORTH );      //将"table"编辑框布置到 "CENTER"      c.add( table, BorderLayout.CENTER );      getTable();      setSize( 500, 300 );      //显示Form      show();   }   private void getTable()   {      try {               //执行SQL语句         String query = inputQuery.getText();         statement = connection.createStatement();         resultSet = statement.executeQuery( query );         //在表格中显示查询结果         displayResultSet( resultSet );      }      catch ( SQLException sqlex ) {         sqlex.printStackTrace();      }   }   private void displayResultSet( ResultSet rs )      throws SQLException   {      //定位到达第一条记录      boolean moreRecords = rs.next();      //如果没有记录,则提示一条消息      if ( ! moreRecords ) {         JOptionPane.showMessageDialog( this,            "结果集中无记录" );         setTitle( "无记录显示" );         return;      }      Vector columnHeads = new Vector();      Vector rows = new Vector();      try {         //获取字段的名称         ResultSetMetaData rsmd = rs.getMetaData();         for ( int i = 1; i <= rsmd.getColumnCount(); ++i )            columnHeads.addElement( rsmd.getColumnName( i ) );         //获取记录集         do {            rows.addElement( getNextRow( rs, rsmd ) );         } while ( rs.next() );         //在表格中显示查询结果         table = new JTable( rows, columnHeads );         JScrollPane scroller = new JScrollPane( table );         Container c = getContentPane();         c.remove(1);         c.add( scroller, BorderLayout.CENTER );         //刷新Table         c.validate();      }      catch ( SQLException sqlex ) {         sqlex.printStackTrace();      }   }   private Vector getNextRow( ResultSet rs,                              ResultSetMetaData rsmd )       throws SQLException   {      Vector currentRow = new Vector();      for ( int i = 1; i <= rsmd.getColumnCount(); ++i )         currentRow.addElement( rs.getString( i ) );      //返回一条记录      return currentRow;   }   public void shutDown()   {      try {               //断开数据库连接         connection.close();      }      catch ( SQLException sqlex ) {         System.err.println( "Unable to disconnect" );         sqlex.printStackTrace();      }   }   public static void main( String args[] )   {      final DisplayQueryResults app =         new DisplayQueryResults();      app.addWindowListener(         new WindowAdapter() {            public void windowClosing( WindowEvent e )            {               app.shutDown();               System.exit( 0 );            }         }      );   }}

⌨️ 快捷键说明

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