【Java学习笔记】18.Java数据库编程 -2

发布于:2025-09-10 ⋅ 阅读:(17) ⋅ 点赞:(0)

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,

网站公告

今日签到

点亮在社区的每一天
去签到