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 + -
显示快捷键?