7. 数据库开发实例
这是一个基于AWT和MYSQL的数据库查询系统
7.1 构造方法
在数据库开发类的实例中,通常先在构造方法中动态的加载和创建数据库驱动对象,然后通过DriverManager.getConnection()方法创建连接。
【例】java数据库开发实例
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.Vector;
/**
* SQL查询工具类,提供图形界面用于连接数据库、执行SQL语句并显示结果
* 使用Java Swing和JDBC实现
*/
public class SQLQueryTool extends JFrame {
// 数据库连接相关组件
private JTextField urlField; // 数据库URL输入框
private JTextField userField; // 用户名输入框
private JPasswordField passField; // 密码输入框
// SQL语句输入和结果显示组件
private JTextArea sqlArea; // SQL语句输入区域
private JTable resultTable; // 结果显示表格
// 功能按钮
private JButton connectBtn; // 连接数据库按钮
private JButton executeBtn; // 执行SQL语句按钮
// 数据库连接对象
private Connection connection;
/**
* 构造函数,初始化窗口
*/
public SQLQueryTool() {
super("SQL查询工具"); // 设置窗口标题
initializeUI(); // 初始化用户界面
setSize(800, 600); // 设置窗口大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭操作
setLocationRelativeTo(null); // 窗口居中显示
}
/**
* 初始化用户界面组件和布局
*/
private void initializeUI() {
// 创建主面板,使用边界布局,并设置边距
JPanel mainPanel = new JPanel(new BorderLayout(5, 5));
mainPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
// 创建数据库连接面板
JPanel connectionPanel = createConnectionPanel();
// 创建SQL输入面板
JPanel sqlPanel = createSqlPanel();
// 创建按钮面板
JPanel buttonPanel = createButtonPanel();
// 创建结果面板
JPanel resultPanel = createResultPanel();
// 添加所有面板到主面板
mainPanel.add(connectionPanel, BorderLayout.NORTH);
mainPanel.add(sqlPanel, BorderLayout.CENTER);
mainPanel.add(buttonPanel, BorderLayout.SOUTH);
// 使用分割面板将SQL输入区域和结果显示区域分开
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, mainPanel, resultPanel);
splitPane.setResizeWeight(0.4); // 设置分割比例
// 将分割面板添加到窗口
add(splitPane);
}
/**
* 创建数据库连接面板
* @return 配置好的连接面板
*/
private JPanel createConnectionPanel() {
// 创建连接面板,使用网格袋布局
JPanel connectionPanel = new JPanel(new GridBagLayout());
connectionPanel.setBorder(BorderFactory.createTitledBorder("数据库连接"));
// 设置布局约束
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(2, 2, 2, 2); // 组件间距
gbc.fill = GridBagConstraints.HORIZONTAL; // 水平填充
// 添加URL标签和输入框
gbc.gridx = 0; gbc.gridy = 0; gbc.weightx = 0;
connectionPanel.add(new JLabel("URL:"), gbc);
gbc.gridx = 1; gbc.gridy = 0; gbc.weightx = 1;
urlField = new JTextField("jdbc:mysql://localhost:3306/test", 30);
connectionPanel.add(urlField, gbc);
// 添加用户名标签和输入框
gbc.gridx = 0; gbc.gridy = 1; gbc.weightx = 0;
connectionPanel.add(new JLabel("用户名:"), gbc);
gbc.gridx = 1; gbc.gridy = 1; gbc.weightx = 1;
userField = new JTextField("root", 15);
connectionPanel.add(userField,