package dbhw_handout; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; import java.util.StringTokenizer; /** *
Title: CS3610 Daabase Homework: Programming Project (Frame Class)
*Description: Demonstrates how to access a DBMS (mySQL) from an * application program.
*Copyright: Copyright (c) 2004
*Company: Cedarville University
* @author Keith A. Shomper * @version 1.0 */ public class dbhwFrameClass extends JFrame { //Database objects Connection connection = null; Statement Stmt = null; // you will need others attributes ..... String fieldNames[]; //Interface objects JPanel contentPane; JPanel jPanel1 = new JPanel(); JLabel tableLabel = new JLabel(); JLabel recordLabel = new JLabel(); JLabel fieldNamesLabel = new JLabel(); JTextField tableNameTextBox = new JTextField(); JTextField recordTextBox = new JTextField(); JTextField recordNumberTextBox = new JTextField(); JButton tableOpenButton = new JButton(); JButton updateButton = new JButton(); JButton deleteButton = new JButton(); JButton exitButton = new JButton(); JButton nextRecordButton = new JButton(); JButton lastRecordButton = new JButton(); JButton prevRecordButton = new JButton(); JButton firstRecordButton = new JButton(); JButton insertButton = new JButton(); BorderLayout borderLayout1 = new BorderLayout(); //Construct the frame public dbhwFrameClass() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Component initialization private void jbInit() throws Exception { nextRecordButton.setBounds(new Rectangle(148, 162, 42, 25)); nextRecordButton.setText(">"); nextRecordButton.setToolTipText("Next Record"); nextRecordButton.addActionListener(new dbhwFrameClass_nextRecordButton_actionAdapter(this)); lastRecordButton.setBounds(new Rectangle(190, 162, 50, 25)); lastRecordButton.setToolTipText("First Record"); lastRecordButton.setText(">>"); lastRecordButton.addActionListener(new dbhwFrameClass_lastRecordButton_actionAdapter(this)); prevRecordButton.setBounds(new Rectangle(60, 162, 42, 25)); prevRecordButton.setSelectedIcon(null); prevRecordButton.setToolTipText("Previous Record"); prevRecordButton.setText("<"); prevRecordButton.addActionListener(new dbhwFrameClass_prevRecordButton_actionAdapter(this)); firstRecordButton.setBounds(new Rectangle(10, 162, 50, 25)); firstRecordButton.setToolTipText("Last Record"); firstRecordButton.setSelected(false); firstRecordButton.setSelectedIcon(null); firstRecordButton.setText("<<"); firstRecordButton.addActionListener(new dbhwFrameClass_firstRecordButton_actionAdapter(this)); exitButton.addActionListener(new dbhwFrameClass_exitButton_actionAdapter(this)); exitButton.setBounds(new Rectangle(390, 231, 73, 25)); exitButton.setText("Exit"); recordNumberTextBox.setEditable(false); recordNumberTextBox.setText(""); recordNumberTextBox.setBounds(new Rectangle(102, 162, 46, 25)); insertButton.setBounds(new Rectangle(244, 162, 73, 25)); insertButton.setText("Insert"); insertButton.setToolTipText("Fields must be comma delimited"); insertButton.addActionListener(new dbhwFrameClass_insertButton_actionAdapter(this)); deleteButton.addActionListener(new dbhwFrameClass_deleteButton_actionAdapter(this)); deleteButton.setBounds(new Rectangle(390, 162, 73, 25)); deleteButton.setText("Delete"); updateButton.addActionListener(new dbhwFrameClass_updateButton_actionAdapter(this)); updateButton.setBounds(new Rectangle(317, 162, 73, 25)); updateButton.setToolTipText("Fields must be comma delimited"); updateButton.setText("Update"); tableOpenButton.addActionListener(new dbhwFrameClass_tableOpenButton_actionAdapter(this)); tableOpenButton.setBounds(new Rectangle(190, 30, 61, 23)); tableOpenButton.setText("Open"); tableNameTextBox.setText(""); tableNameTextBox.setBounds(new Rectangle(51, 30, 139, 23)); fieldNamesLabel.setText("... Field Names ..."); fieldNamesLabel.setBounds(new Rectangle(16, 96, 358, 15)); recordTextBox.setBounds(new Rectangle(16, 111, 447, 23)); recordTextBox.setText(""); recordLabel.setBounds(new Rectangle(16, 81, 35, 15)); recordLabel.setText("Record"); tableLabel.setBounds(new Rectangle(16, 30, 26, 13)); tableLabel.setText("Table"); jPanel1.add(tableLabel, null); jPanel1.add(tableOpenButton, null); jPanel1.add(recordLabel, null); jPanel1.add(recordTextBox, null); contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(486, 300)); this.setTitle("CS3610 Project"); jPanel1.setLayout(null); contentPane.add(jPanel1, BorderLayout.CENTER); jPanel1.add(tableNameTextBox, null); jPanel1.add(prevRecordButton, null); jPanel1.add(lastRecordButton, null); jPanel1.add(nextRecordButton, null); jPanel1.add(recordNumberTextBox, null); jPanel1.add(firstRecordButton, null); jPanel1.add(fieldNamesLabel, null); jPanel1.add(exitButton, null); jPanel1.add(deleteButton, null); jPanel1.add(updateButton, null); jPanel1.add(insertButton, null); //Open the connection to the mySQL database on james.cedarville.edu try { // Find the driver Class.forName("org.gjt.mm.mysql.Driver"); //Open the connection connection = DriverManager.getConnection("jdbc:mysql://john.cedarville.edu/test", "cs3610", ""); } catch (SQLException ex1) { } catch (ClassNotFoundException ex) { } } //Overridden so we can exit when window is closed protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void tableOpenButton_actionPerformed(ActionEvent e) { //SHOW COLUMNS on table_name specified in the tableNameTextBox //Put up the field names on the panel as JLabels and display the //first record of the table in the recordTextBox String line; String resultText = ""; String query = "SHOW COLUMNS FROM "; String tableName = tableNameTextBox.getText(); query += tableName + ";"; try { // execute the SQL statement Stmt = connection.createStatement(); ResultSet results = Stmt.executeQuery(query); // determine the number of fields in the table int numFields; results.last(); numFields = results.getRow(); // allocate space to hold the field names fieldNames = new String[numFields]; System.out.print (numFields); System.out.println(" fields."); //Iterate through the query results to build the field name label results.beforeFirst(); int cnt = 0; while (results.next()) { line = results.getString("Field"); System.out.println(line); fieldNames[cnt] = line; resultText += line + " "; cnt++; } fieldNamesLabel.setText(resultText); } catch (SQLException ex1) { System.out.println("error getting field names."); } // Get the first record in the table try { ResultSet results = Stmt.executeQuery(""); } catch (SQLException ex1) { System.out.println("error getting first record."); } } void exitButton_actionPerformed(ActionEvent e) { System.exit(0); } void insertButton_actionPerformed(ActionEvent e) { } void updateButton_actionPerformed(ActionEvent e) { } void deleteButton_actionPerformed(ActionEvent e) { } void firstRecordButton_actionPerformed(ActionEvent e) { } void prevRecordButton_actionPerformed(ActionEvent e) { } void nextRecordButton_actionPerformed(ActionEvent e) { } void lastRecordButton_actionPerformed(ActionEvent e) { } } class dbhwFrameClass_deleteButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_deleteButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.deleteButton_actionPerformed(e); } } class dbhwFrameClass_tableOpenButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_tableOpenButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.tableOpenButton_actionPerformed(e); } } class dbhwFrameClass_exitButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_exitButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.exitButton_actionPerformed(e); } } class dbhwFrameClass_updateButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_updateButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.updateButton_actionPerformed(e); } } class dbhwFrameClass_firstRecordButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_firstRecordButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.firstRecordButton_actionPerformed(e); } } class dbhwFrameClass_prevRecordButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_prevRecordButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.prevRecordButton_actionPerformed(e); } } class dbhwFrameClass_nextRecordButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_nextRecordButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.nextRecordButton_actionPerformed(e); } } class dbhwFrameClass_lastRecordButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_lastRecordButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.lastRecordButton_actionPerformed(e); } } class dbhwFrameClass_insertButton_actionAdapter implements java.awt.event.ActionListener { dbhwFrameClass adaptee; dbhwFrameClass_insertButton_actionAdapter(dbhwFrameClass adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.insertButton_actionPerformed(e); } }