import java.sql. * ; import javax.swing. * ; import java.awt. * ; import java.awt.event. * ; import java.util. * ; public class inensshow 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 inensshow()...{//Form的标题super( "输入SQL语句,按查询按钮查看结果。" );String url = "jdbc:mysql://localhost:3306/test";String username = "root";String password = "000000";//加载驱动程序以连接数据库try ...{Class.forName( "org.gjt.mm.mysql.Driver" );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 about";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 );//显示Formshow();}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 );//刷新Tablec.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 inensshow app = new inensshow();app.addWindowListener( new WindowAdapter() ...{ public void windowClosing( WindowEvent e )...{app.shutDown();System.exit( 0 );}});}}