Java tutorial
import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.AbstractTableModel; public class MainClass extends JFrame { JTextField hostField; JTextField queryField; QueryTableModel qtm = new QueryTableModel(); public MainClass() { setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(350, 200); JTable table = new JTable(qtm); JScrollPane scrollpane = new JScrollPane(table); JPanel commandPanel = new JPanel(); commandPanel.setLayout(new GridLayout(3, 2)); commandPanel.add(new JLabel("Enter the Host URL: ")); commandPanel.add(hostField = new JTextField()); commandPanel.add(new JLabel("Enter your query: ")); commandPanel.add(queryField = new JTextField()); commandPanel.add(new JLabel("Click here to send: ")); JButton jb = new JButton("Search"); jb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { qtm.setHostURL(hostField.getText().trim()); qtm.setQuery(queryField.getText().trim()); } }); commandPanel.add(jb); getContentPane().add(commandPanel, BorderLayout.NORTH); getContentPane().add(scrollpane, BorderLayout.CENTER); } public static void main(String args[]) { MainClass tt = new MainClass(); tt.setVisible(true); } } class QueryTableModel extends AbstractTableModel { Vector cache; int colCount; String[] headers; Connection db; Statement statement; String currentURL; public QueryTableModel() { cache = new Vector(); } public String getColumnName(int i) { return headers[i]; } public int getColumnCount() { return colCount; } public int getRowCount() { return cache.size(); } public Object getValueAt(int row, int col) { return ((String[]) cache.elementAt(row))[col]; } public void setHostURL(String url) { if (url.equals(currentURL)) { return; } closeDB(); initDB(url); currentURL = url; } public void setQuery(String q) { cache = new Vector(); try { ResultSet rs = statement.executeQuery(q); ResultSetMetaData meta = rs.getMetaData(); colCount = meta.getColumnCount(); headers = new String[colCount]; for (int h = 1; h <= colCount; h++) { headers[h - 1] = meta.getColumnName(h); } while (rs.next()) { String[] record = new String[colCount]; for (int i = 0; i < colCount; i++) { record[i] = rs.getString(i + 1); } cache.addElement(record); } fireTableChanged(null); } catch (Exception e) { cache = new Vector(); e.printStackTrace(); } } public void initDB(String url) { try { Class.forName("your driver class"); db = DriverManager.getConnection(url); statement = db.createStatement(); } catch (Exception e) { System.out.println("Could not initialize the database."); e.printStackTrace(); } } public void closeDB() { try { if (statement != null) { statement.close(); } if (db != null) { db.close(); } } catch (Exception e) { System.out.println("Could not close the current connection."); e.printStackTrace(); } } }