exercise25_5.java

来自「java程序设计 机械工业出版社 书籍代码」· Java 代码 · 共 412 行

JAVA
412
字号
import java.awt.*;import java.awt.event.*;import java.applet.*;import javax.swing.*;import java.sql.*;public class Exercise25_5 extends javax.swing.JApplet {  // Result set  ResultSet resultSet;  // Current row number  int currentRowNumber;  /** Creates new form Exercise25_5 */  public Exercise25_5() {    initComponents();    // Connect to database, create statement, get result set    initializeDB();  }  /** This method is called from within the constructor to   * initialize the form.   * WARNING: Do NOT modify this code. The content of this method is   * always regenerated by the Form Editor.   */  private void initComponents() {//GEN-BEGIN:initComponents    jPanel1 = new javax.swing.JPanel();    jbtFirst = new javax.swing.JButton();    jbtNext = new javax.swing.JButton();    jbtPrior = new javax.swing.JButton();    jbtLast = new javax.swing.JButton();    jbtInsert = new javax.swing.JButton();    jbtDelete = new javax.swing.JButton();    jbtUpdate = new javax.swing.JButton();    jlblStatus = new javax.swing.JLabel();    jpAddress = new javax.swing.JPanel();    jPanel2 = new javax.swing.JPanel();    jLabel1 = new javax.swing.JLabel();    jtfFirstName = new javax.swing.JTextField();    jLabel2 = new javax.swing.JLabel();    jtfMI = new javax.swing.JTextField();    jLabel3 = new javax.swing.JLabel();    jtfLastName = new javax.swing.JTextField();    jPanel3 = new javax.swing.JPanel();    jLabel4 = new javax.swing.JLabel();    jtfStreet = new javax.swing.JTextField();    jPanel4 = new javax.swing.JPanel();    jLabel5 = new javax.swing.JLabel();    jtfCity = new javax.swing.JTextField();    jLabel6 = new javax.swing.JLabel();    jtfState = new javax.swing.JTextField();    jLabel7 = new javax.swing.JLabel();    jtfZip = new javax.swing.JTextField();    jPanel5 = new javax.swing.JPanel();    jLabel8 = new javax.swing.JLabel();    jtfTelephone = new javax.swing.JTextField();    jPanel6 = new javax.swing.JPanel();    jLabel9 = new javax.swing.JLabel();    jtfEmail = new javax.swing.JTextField();    jbtFirst.setText("First");    jbtFirst.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        jbtFirstActionPerformed(evt);      }    });    jPanel1.add(jbtFirst);    jbtNext.setText("Next");    jbtNext.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        jbtNextActionPerformed(evt);      }    });    jPanel1.add(jbtNext);    jbtPrior.setText("Prior");    jPanel1.add(jbtPrior);    jbtLast.setText("Last");    jbtLast.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        jbtLastActionPerformed(evt);      }    });    jPanel1.add(jbtLast);    jbtInsert.setText("Insert");    jbtInsert.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        jbtInsertActionPerformed(evt);      }    });    jPanel1.add(jbtInsert);    jbtDelete.setText("Delete");    jbtDelete.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        jbtDeleteActionPerformed(evt);      }    });    jPanel1.add(jbtDelete);    jbtUpdate.setText("Update");    jbtUpdate.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        jbtUpdateActionPerformed(evt);      }    });    jPanel1.add(jbtUpdate);    getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);    jlblStatus.setText("jLabel1");    getContentPane().add(jlblStatus, java.awt.BorderLayout.SOUTH);    jpAddress.setLayout(new java.awt.GridLayout(5, 0));    jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));    jLabel1.setText("First Name");    jPanel2.add(jLabel1);    jtfFirstName.setColumns(10);    jPanel2.add(jtfFirstName);    jLabel2.setText("MI");    jPanel2.add(jLabel2);    jtfMI.setColumns(2);    jPanel2.add(jtfMI);    jLabel3.setText("Last Name");    jPanel2.add(jLabel3);    jtfLastName.setColumns(15);    jPanel2.add(jtfLastName);    jpAddress.add(jPanel2);    jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));    jLabel4.setText("Street");    jPanel3.add(jLabel4);    jtfStreet.setColumns(40);    jPanel3.add(jtfStreet);    jpAddress.add(jPanel3);    jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));    jLabel5.setText("City");    jPanel4.add(jLabel5);    jtfCity.setColumns(15);    jPanel4.add(jtfCity);    jLabel6.setText("State");    jPanel4.add(jLabel6);    jtfState.setColumns(2);    jPanel4.add(jtfState);    jLabel7.setText("ZIP");    jPanel4.add(jLabel7);    jtfZip.setColumns(5);    jPanel4.add(jtfZip);    jpAddress.add(jPanel4);    jPanel5.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));    jLabel8.setText("Telephone");    jPanel5.add(jLabel8);    jtfTelephone.setColumns(12);    jPanel5.add(jtfTelephone);    jpAddress.add(jPanel5);    jPanel6.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));    jLabel9.setText("Email");    jPanel6.add(jLabel9);    jtfEmail.setColumns(25);    jPanel6.add(jtfEmail);    jpAddress.add(jPanel6);    getContentPane().add(jpAddress, java.awt.BorderLayout.CENTER);  }//GEN-END:initComponents  private void jbtUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtUpdateActionPerformed    try    {      updateRecord(); // Update fields in the current row      // Inovke the update method in the result set      resultSet.updateRow();    }    catch (Exception ex)    {      jlblStatus.setText(ex.toString());    }  }//GEN-LAST:event_jbtUpdateActionPerformed  private void jbtDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtDeleteActionPerformed    try {      resultSet.deleteRow();      jlblStatus.setText("Deletion succeeded");    }    catch (Exception ex) {      jlblStatus.setText(ex.toString());    }  }//GEN-LAST:event_jbtDeleteActionPerformed  private void jbtInsertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtInsertActionPerformed    try {      insert();      jlblStatus.setText("Insertion succeeded");    }    catch (SQLException ex) {      jlblStatus.setText(ex.getMessage());    }  }//GEN-LAST:event_jbtInsertActionPerformed  private void jbtLastActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtLastActionPerformed    try {      if (resultSet.isFirst())        jlblStatus.setText("This is already the first row");      else {        resultSet.previous();        showRecord();      }    }    catch (Exception ex) {      jlblStatus.setText(ex.toString());    }  }//GEN-LAST:event_jbtLastActionPerformed  private void jbtNextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtNextActionPerformed    try {      if (resultSet.isLast())        jlblStatus.setText("This is already the last row");      else {        resultSet.next();        showRecord();      }    }    catch (Exception ex) {      jlblStatus.setText(ex.toString());    }  }//GEN-LAST:event_jbtNextActionPerformed  private void jbtFirstActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtFirstActionPerformed    try {      if (resultSet.first())        showRecord();      else        jlblStatus.setText("There is no row in the result set");    }    catch (Exception ex) {      jlblStatus.setText(ex.toString());    }  }//GEN-LAST:event_jbtFirstActionPerformed  /**Initialize the database connection, create statement, and   * result set */  private void initializeDB() {    try {      // Load the JDBC-ODBC bridge driver      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");      // Class.forName("oracle.jdbc.driver.OracleDriver");      System.out.println("Driver loaded");      // Establish connection      Connection connection = DriverManager.getConnection        ("jdbc:odbc:exampleMDBDataSource", "", "");      // connection = DriverManager.getConnection        // ("jdbc:oracle:thin:@liang.armstrong.edu:1521:test",        // "scott", "tiger");      System.out.println("Database connected");      // Create a statement      Statement statement = connection.createStatement        (ResultSet.TYPE_SCROLL_SENSITIVE,         ResultSet.CONCUR_UPDATABLE);      // Get result set      resultSet = statement.executeQuery("select * from Address");//      statement.addBatch("A new SQL command");//      statement.addBatch("A new SQL command");//      statement.addBatch("A new SQL command");//      int count[] = statement.executeBatch();//      statement.clearBatch();      // Show the first record in the result set      resultSet.first();      showRecord();    }    catch (Exception ex) {      jlblStatus.setText(ex.toString());    }  }  private void showRecord() throws Exception {    jtfFirstName.setText(resultSet.getString("firstName"));    jtfLastName.setText(resultSet.getString("lastName"));    jtfMI.setText(resultSet.getString("mi"));    jtfStreet.setText(resultSet.getString("Street"));    jtfCity.setText(resultSet.getString("City"));    jtfState.setText(resultSet.getString("State"));    jtfTelephone.setText(resultSet.getString("Telephone"));    jtfZip.setText(resultSet.getString("zip"));    jtfEmail.setText(resultSet.getString("email"));    currentRowNumber = resultSet.getRow();    jlblStatus.setText("Current row number: " + currentRowNumber);  }  /**Main method*/  public static void main(String[] args) {    Exercise25_5 applet = new Exercise25_5();    JFrame frame = new JFrame();    //EXIT_ON_CLOSE == 3    frame.setDefaultCloseOperation(3);    frame.setTitle("Exercise25_5");    frame.getContentPane().add(applet, BorderLayout.CENTER);    applet.init();    applet.start();    frame.pack();    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();    frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);    frame.setVisible(true);  }  /**Insert a new record to the database*/  protected void insert() throws SQLException {    // Update the fields    updateRecord();    // Insert the row    resultSet.insertRow();    // Move the cursor back to the position before the insertion    resultSet.moveToCurrentRow();  }  /**Update fields in the record*/  protected void updateRecord() throws SQLException {    // Gather data from the UI and update the database fields    resultSet.updateString("firstName",      jtfFirstName.getText().trim());    resultSet.updateString("MI", jtfMI.getText().trim());    resultSet.updateString("lastName", jtfLastName.getText().trim());    resultSet.updateString("Street", jtfStreet.getText().trim());    resultSet.updateString("City", jtfCity.getText().trim());    resultSet.updateString("zip", jtfZip.getText().trim());    resultSet.updateString("Telephone",      jtfTelephone.getText().trim());    resultSet.updateString("email", jtfEmail.getText().trim());  }  // Variables declaration - do not modify//GEN-BEGIN:variables  private javax.swing.JTextField jtfStreet;  private javax.swing.JTextField jtfLastName;  private javax.swing.JPanel jPanel6;  private javax.swing.JPanel jPanel5;  private javax.swing.JPanel jPanel4;  private javax.swing.JPanel jPanel3;  private javax.swing.JTextField jtfMI;  private javax.swing.JPanel jPanel2;  private javax.swing.JPanel jPanel1;  private javax.swing.JButton jbtLast;  private javax.swing.JButton jbtPrior;  private javax.swing.JTextField jtfCity;  private javax.swing.JTextField jtfZip;  private javax.swing.JButton jbtUpdate;  private javax.swing.JTextField jtfEmail;  private javax.swing.JTextField jtfFirstName;  private javax.swing.JLabel jlblStatus;  private javax.swing.JTextField jtfState;  private javax.swing.JButton jbtInsert;  private javax.swing.JButton jbtFirst;  private javax.swing.JLabel jLabel9;  private javax.swing.JButton jbtNext;  private javax.swing.JLabel jLabel8;  private javax.swing.JPanel jpAddress;  private javax.swing.JLabel jLabel7;  private javax.swing.JLabel jLabel6;  private javax.swing.JLabel jLabel5;  private javax.swing.JLabel jLabel4;  private javax.swing.JLabel jLabel3;  private javax.swing.JTextField jtfTelephone;  private javax.swing.JLabel jLabel2;  private javax.swing.JLabel jLabel1;  private javax.swing.JButton jbtDelete;  // End of variables declaration//GEN-END:variables}

⌨️ 快捷键说明

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