⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 updaterecordframe.java

📁 JAVA数据库编程实例随书源码 JAVA数据库编程实例随书源码
💻 JAVA
字号:
package updaterecord;import com.borland.jbcl.layout.*;import java.awt.*;import java.awt.event.*;import java.lang.*;import java.lang.Object.*;import java.sql.*;import java.util.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;/**   * Title:				更新数据记录程序   * Description:			教学示范   * Copyright:				Copyright (c) 2003   * Company:				北京师范大学计算机系   * @author				孙一林   * @version				1.0   */public class UpdateRecordFrame extends JFrame {  private JPanel contentPane;  private XYLayout xYLayout1 = new XYLayout();            // 构造XYLayout布局管理器  // 创建显示信息使用的组件  private Label label1 = new Label();  private Label label2 = new Label();  private Label label3 = new Label();  private Label label4 = new Label();  private Label label5 = new Label();  private TextField stunumField = new TextField();  private TextField nameField = new TextField();  private TextField ageField = new TextField();  private TextField sexField = new TextField();  private TextField departnameField = new TextField();  private Button updateButton = new Button();  private Button refreshButton = new Button();  Vector vector;                                          // 声明一个向量对象  String title[] = {"学号","姓名","年龄","性别","系名"};     // 二维表列名  Connection connection = null;                           // 声明Connection接口对象connection  ResultSet rs = null;                                    // 定义数据库查询的结果集  Statement statement = null;                             // 定义查询数据库的Statement对象  AbstractTableModel tm;                                  // 声明一个AbstractTableModel类对象tm  public UpdateRecordFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  private void jbInit() throws Exception  {    contentPane = (JPanel) this.getContentPane();    // 初始化组件    label1.setText("学号");    contentPane.setLayout(xYLayout1);    this.setSize(new Dimension(431, 436));    this.setTitle("更新数据记录");    label2.setText("姓名");    label3.setText("年龄");    label4.setText("性别");    label5.setText("系名");    updateButton.setLabel("更新记录");    refreshButton.setLabel("刷新记录");    updateButton.addActionListener(new java.awt.event.ActionListener() {    // 设置updateButton按钮监听器      public void actionPerformed(ActionEvent e) {        updateButton_actionPerformed(e);      }    });    refreshButton.addActionListener(new java.awt.event.ActionListener() {    // 设置refreshButton按钮监听器      public void actionPerformed(ActionEvent e) {        refreshButton_actionPerformed(e);      }    });    contentPane.add(ageField, new XYConstraints(185, 289, 63, 27));    contentPane.add(label1, new XYConstraints(47, 249, 46, 31));    contentPane.add(label2, new XYConstraints(119, 249, 46, 31));    contentPane.add(label3, new XYConstraints(192, 249, 46, 31));    contentPane.add(label4, new XYConstraints(264, 249, 46, 31));    contentPane.add(label5, new XYConstraints(336, 249, 46, 31));    contentPane.add(stunumField, new XYConstraints(31, 289, 63, 27));    contentPane.add(nameField, new XYConstraints(108, 289, 63, 27));    contentPane.add(sexField, new XYConstraints(261, 289, 63, 27));    contentPane.add(departnameField, new XYConstraints(338, 289, 63, 27));    contentPane.add(updateButton,  new XYConstraints(102, 331, 87, 32));    contentPane.add(refreshButton,  new XYConstraints(241, 331, 83, 32));    createtable();                                 // 在初始化函数中调用createtable()函数显示表格   }   void createtable() {                            // 定义createtable()函数     JTable table;                                 // 声明一个JTable类对象table     JScrollPane scroll;                           // 声明一个滚动杠对象scroll     vector = new Vector();                        // 创建向量对象     tm = new AbstractTableModel() {               // 创建AbstractTableModel类对象tm       public int getColumnCount() {               // 取得表格列数         return title.length;       }       public int getRowCount() {                  // 取得表格行数         return vector.size();       }       public Object getValueAt(int row, int column) {          // 取得单元格中的属性值         if(!vector.isEmpty()) {           return ((Vector)vector.elementAt(row)).elementAt(column);         }         else {           return null;         }       }       public void setValueAt(Object value, int row, int column) {  // 数据模型不可编辑,该方法设置为空       }       public String getColumnName(int column) {                    // 取得表格列名         return title[column];       }       public Class getColumnClass(int c) {                         // 取得列所属对象类         return getValueAt(0,c).getClass();       }       public boolean isCellEditable(int row, int column) {// 设置单元格不可编辑,为缺省实现         return false;       }     };     table = new JTable(tm);                               // 生成自己的数据模型     table.setToolTipText("Display Query Result");         // 设置帮助提示     table.setAutoResizeMode(table.AUTO_RESIZE_OFF);       // 设置表格调整尺寸模式     table.setCellSelectionEnabled(false);                 // 设置单元格选择方式     table.setShowHorizontalLines(true);                   // 设置是否显示单元格之间的分割线     table.setShowVerticalLines(true);     scroll = new JScrollPane(table);                      // 给表格加上滚动杠     scroll.setBounds(6,20,540,250);     contentPane.add(scroll,new XYConstraints(16, 20, 395, 200));  }  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  void updateButton_actionPerformed(ActionEvent e) {        // 处理updateButton的ActionEvent    try {      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");        // 实例化JDBC-ODBC桥的驱动      String url = "jdbc:odbc:TestDbStu";                   // 设置连接字符串      connection = DriverManager.getConnection(url);        // 连接数据库      // 创建Statement接口对象      statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);      String sql = "select * from studentbase where 学号="+Integer.parseInt(stunumField.getText()) ;      rs = statement.executeQuery(sql);                     // 执行学号为输入学号的查询语句      if (rs.next()==false) {                               // 判断数据库中是否有要更新的记录,如没有则显示提示框        JOptionPane msg = new JOptionPane();        JOptionPane.showMessageDialog(UpdateRecordFrame.this, "数据库中没有您要更新的学号", "数据库中没有您要更新的学号!", 1);      }      else {        sql="update studentbase set 姓名='"+nameField.getText()+"', 年龄="+Integer.parseInt(ageField.getText())+" ,性别='"+sexField.getText()+"',系名='"+departnameField.getText()+"' where 学号="+Integer.parseInt(stunumField.getText());        statement.executeUpdate(sql);                       // 执行更新数据记录语句        // 清空信息框        stunumField.setText("");        nameField.setText("");        ageField.setText("");        sexField.setText("");        departnameField.setText("");      }    }    catch(SQLException ex){                               // 捕捉异常      System.out.println("\nERROR:----- SQLException -----\n");      while (ex != null) {        System.out.println("Message:   " + ex.getMessage());        System.out.println("SQLState:  " + ex.getSQLState());        System.out.println("ErrorCode: " + ex.getErrorCode());        ex = ex.getNextException();      }    }    catch(Exception ex ) {      ex.printStackTrace();    }    finally {      try {        if(statement != null) {          statement.close();                                // 关闭Statement接口实例        }        if(connection != null) {          connection.close();                               // 关闭Connection接口实例        }      }      catch (SQLException ex)  {        System.out.println("\nERROR:----- SQLException -----\n");        System.out.println("Message:   " + ex.getMessage( ));        System.out.println("SQLState:  " + ex.getSQLState());        System.out.println("ErrorCode: " + ex.getErrorCode());      }    }  }  void refreshButton_actionPerformed(ActionEvent e) {         // 处理refreshButton的ActionEvent    try {      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");          // 实例化JDBC-ODBC桥的驱动      String url = "jdbc:odbc:TestDbStu";      connection = DriverManager.getConnection(url);          // 连接数据库      statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);      String sql = "select * from studentbase";      rs = statement.executeQuery(sql);                       // 执行查询语句      vector.removeAllElements();                             // 初始化向量对象      tm.fireTableStructureChanged();                         // 更新表格内容      while(rs.next()) {        Vector rec_vector = new Vector();        // 从结果集中取数据放入向量rec_vector中        rec_vector.addElement(String.valueOf(rs.getInt("学号")));        rec_vector.addElement(rs.getString("姓名"));        rec_vector.addElement(String.valueOf(rs.getInt("年龄")));        rec_vector.addElement(rs.getString("性别"));        rec_vector.addElement(rs.getString("系名"));        vector.addElement(rec_vector);                        // 向量rec_vector加入向量vector中      }      tm.fireTableStructureChanged();                         // 更新表格,显示向量vector的内容      rs.close();                                             // 关闭结果集    }    catch(SQLException ex){                                   // 捕捉异常      System.out.println("\nERROR:----- SQLException -----\n");      while (ex != null) {        System.out.println("Message:   " + ex.getMessage());        System.out.println("SQLState:  " + ex.getSQLState());        System.out.println("ErrorCode: " + ex.getErrorCode());        ex = ex.getNextException();      }    }    catch(Exception ex ) {      ex.printStackTrace();    }    finally {      try {        if(statement != null) {          statement.close();                                // 关闭Statement接口实例        }        if(connection != null) {          connection.close();                               // 关闭Connection接口实例        }      }      catch (SQLException ex)  {        System.out.println("\nERROR:----- SQLException -----\n");        System.out.println("Message:   " + ex.getMessage( ));        System.out.println("SQLState:  " + ex.getSQLState());        System.out.println("ErrorCode: " + ex.getErrorCode());      }    }  }}

⌨️ 快捷键说明

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