dbmanager.java

来自「用java编写的数据库管理程序」· Java 代码 · 共 132 行

JAVA
132
字号
package createdb;import java.awt.*;import java.awt.event.*;import java.util.Vector;import javax.swing.*;import javax.swing.event.*;public class DBManager extends JFrame{  JMenuBar menuBar = new JMenuBar();  JDesktopPane desktop = new JDesktopPane();  String database = null;  String tableName = null;  String menuSelection = null;  TableBuilderFrame tableMaker = null;  TableEditFrame tableEditor = null;    // added for Chapter 6  DatabaseUtilities dbUtils = null;  TableMenu tableMenu = new TableMenu();  EditMenu editMenu = new EditMenu();   // added for Chapter 6  MenuListener menuListener = new MenuListener();  public DBManager(){    setJMenuBar(menuBar);    setTitle("JDBC Database Bible");    getContentPane().setLayout(new BorderLayout());    getContentPane().add(desktop,BorderLayout.CENTER);    setSize(new Dimension(640,480));    setLocation(100,100);    menuBar.add(tableMenu);    tableMenu.setMenuListener(menuListener);    menuBar.add(editMenu);                    // added for Chapter 6    editMenu.setMenuListener(menuListener);    setVisible(true);  }  private void displayTableBuilderFrame(){    tableName = JOptionPane.showInputDialog(this,"Table:",                "Select table",JOptionPane.QUESTION_MESSAGE);    if(tableName==null)      return;    tableMaker = new TableBuilderFrame(tableName);    tableMaker.setCommandListener(new CommandListener());    desktop.add(tableMaker);    tableMaker.setVisible(true);  }  private void displayTableEditFrame(){  // added for Chapter 6    tableName = JOptionPane.showInputDialog(this,"Table:",                "Select table",JOptionPane.QUESTION_MESSAGE);    if(tableName==null)      return;    tableEditor = new TableEditFrame(tableName,dbUtils);    desktop.add(tableEditor);    tableEditor.setVisible(true);  }  private void selectDatabase(){    database = JOptionPane.showInputDialog(this,               "Database:","Select database",               JOptionPane.QUESTION_MESSAGE);    dbUtils = new DatabaseUtilities();    dbUtils.setDatabaseName(database);    dbUtils.setExceptionListener(new ExceptionListener());    tableMenu.enableMenuItem("New Table",true);    tableMenu.enableMenuItem("Drop Table",true);    editMenu.enableMenuItem("Insert",true);    editMenu.enableMenuItem("Update",true);    editMenu.enableMenuItem("Delete",true);  }  private void executeSQLCommand(String SQLCommand){    dbUtils.execute(SQLCommand);  }  private void dropTable(){    tableName = JOptionPane.showInputDialog(this,"Table:",                "Select table",JOptionPane.QUESTION_MESSAGE);    if(tableName==null)      return;                  int option = JOptionPane.showConfirmDialog(null,                                    "Dropping table "+tableName,                                    "Database "+database,                                    JOptionPane.OK_CANCEL_OPTION);                  if(option==0){      executeSQLCommand("DROP TABLE "+tableName);    }  }  class MenuListener implements ActionListener{    public void actionPerformed(ActionEvent event){      String menuSelection = event.getActionCommand();      if(menuSelection.equals("Database")){        selectDatabase();      }else if(menuSelection.equals("New Table")){        displayTableBuilderFrame();      }else if(menuSelection.equals("Drop Table")){        dropTable();      }else if(menuSelection.equals("Insert")){        displayTableEditFrame();      }else if(menuSelection.equals("Exit")){        System.exit(0);      }    }  }  class ExceptionListener implements ActionListener{    public void actionPerformed(ActionEvent event){      String exception = event.getActionCommand();      JOptionPane.showMessageDialog(null, exception,                            "SQL Error", JOptionPane.ERROR_MESSAGE);    }  }  class CommandListener implements ActionListener{    public void actionPerformed(ActionEvent event){      String SQLCommand = event.getActionCommand();      executeSQLCommand(SQLCommand);          }  }  public static void main(String args[]){    DBManager dbm = new DBManager();  }}

⌨️ 快捷键说明

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