exercise25_3.java

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

JAVA
105
字号
import javax.swing.*;
import javax.swing.border.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;

public class Exercise25_3 extends JApplet {
  // Connection to the database
  Connection connection;

  // Statement to execute SQL commands
  Statement statement;

  public static void main(String[] args) {
    DBConnectionPanel dbConnectPane = new DBConnectionPanel();
    JFrame frame = new JFrame("Exercise25_3");
    frame.setSize(400, 200);
    frame.getContentPane().add(dbConnectPane, BorderLayout.CENTER);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}

class DBConnectionPanel extends JPanel {
  private Connection connection;
  private JLabel jlblConnectionStatus = new JLabel("No connection");

  private JButton jbtConnect = new JButton("Connect to DB");
  private JComboBox jcboDriver = new JComboBox(new String[] {
    "com.mysql.jdbc.Driver", "sun.jdbc.odbc.JdbcOdbcDriver",
    "oracle.jdbc.driver.OracleDriver"});
  private JComboBox jcboURL = new JComboBox(new String[] {
    "jdbc:mysql://localhost/test",
    "jdbc:odbc:exampleMDBDataSource",
    "jdbc:oracle:thin:@liang.armstrong.edu:1521:ora9i"});

  private JTextField jtfUsername = new JTextField();
  private JPasswordField jpfPassword = new JPasswordField();

  /** Creates new form DBConnectionPanel */
  public DBConnectionPanel() {
    jcboDriver.setEditable(true);
    jcboURL.setEditable(true);

    JPanel jPanel1 = new JPanel();
    jPanel1.setLayout(new BorderLayout());
    jPanel1.add(jlblConnectionStatus, BorderLayout.WEST);
    jPanel1.add(jbtConnect, BorderLayout.EAST);
    jbtConnect.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        connectDB();
      }
    });

    JPanel jPanel3 = new JPanel();
    jPanel3.setLayout(new GridLayout(4, 0));
    jPanel3.add(new JLabel("JDBC Driver"));
    jPanel3.add(new JLabel("Database URL"));
    jPanel3.add(new JLabel("Username"));
    jPanel3.add(new JLabel("Password"));

    JPanel jPanel4 = new JPanel();
    jPanel4.setLayout(new GridLayout(4, 0));
    jPanel4.add(jcboDriver);
    jPanel4.add(jcboURL);
    jPanel4.add(jtfUsername);
    jPanel4.add(jpfPassword);

    JPanel jPanel2 = new JPanel();
    jPanel2.setLayout(new BorderLayout());
    jPanel2.setBorder(new TitledBorder("Enter database information"));
    jPanel2.add(jPanel3, BorderLayout.WEST);
    jPanel2.add(jPanel4, BorderLayout.CENTER);

    this.setLayout(new BorderLayout());
    add(jPanel1, BorderLayout.SOUTH);
    add(jPanel2, BorderLayout.CENTER);
  }

  private void connectDB() {
    // Get database information from the user input
    String driver = (String)jcboDriver.getSelectedItem();
    String url = (String)jcboURL.getSelectedItem();
    String username = jtfUsername.getText().trim();
    String password = new String(jpfPassword.getPassword());

    // Connection to the database
    try {
      Class.forName(driver);
      connection = DriverManager.getConnection(
        url, username, password);
      jlblConnectionStatus.setText("Connected to " + url);
    }
    catch (java.lang.Exception ex) {
      ex.printStackTrace();
    }
  }

  /** Return connection */
  public Connection getConnection() {
    return connection;
  }
}

⌨️ 快捷键说明

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