库里斯托 2023-06-19 09:48 采纳率: 87.6%
浏览 31
已结题

关于#Java Swing和数据库#的问题,如何解决?

import javax.swing.*;
import java.awt.*;
import java.sql.*;

public class log_ui extends JFrame {
    int a;
    private final Dimension buttonSize = new Dimension(200, 50);
    private final Font font = new Font("微软雅黑", Font.PLAIN, 20);

    public log_ui() {
        JFrame frame = new JFrame("验收申请");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(500, 100, 600, 400); // 设置窗口大小和位置
        JPanel panel = new JPanel(new GridBagLayout());
        frame.setContentPane(panel);
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.NONE;
        constraints.anchor = GridBagConstraints.WEST;
        constraints.insets = new Insets(10, 10, 10, 10);
        JLabel text1 = new JLabel("用户名:");
        constraints.gridx = 0;
        constraints.gridy = 0;
        panel.add(text1, constraints);
        JTextField textField1 = new JTextField(20);
        constraints.gridx = 1;
        panel.add(textField1, constraints);
        JLabel text2 = new JLabel("密码:");
        constraints.gridx = 0;
        constraints.gridy = 1;
        panel.add(text2, constraints);
        JPasswordField passwordField = new JPasswordField(20); // 用密码框来代替文本框并隐藏密码
        constraints.gridx = 1;
        panel.add(passwordField, constraints);

        JButton loginButton = new JButton("登录");   //登录按钮
        loginButton.setPreferredSize(buttonSize);
        loginButton.setFont(font);
        GridBagConstraints gbc4 = new GridBagConstraints();
        gbc4.gridx = 0;
        gbc4.gridy = 4;
        gbc4.gridwidth = 1;
        gbc4.gridheight = 1;
        gbc4.fill = GridBagConstraints.HORIZONTAL;
        gbc4.weightx = 0.5;
        panel.add(loginButton, gbc4);

        JRadioButton c_button = new JRadioButton("学生选中,教师不选");
        c_button.setPreferredSize(buttonSize);
        c_button.setFont(font);
        GridBagConstraints gbc6 = new GridBagConstraints();
        gbc6.gridx = 0;  // 这里修改为 0 即可
        gbc6.gridy = 2;  // 修改为一个合适的值
        gbc6.gridwidth = 2;
        gbc6.gridheight = 1;
        gbc6.fill = GridBagConstraints.HORIZONTAL;
        gbc6.weightx = 0.5;
        panel.add(c_button, gbc6);

        //
        JButton registerButton = new JButton("注册");  //注册按钮
        registerButton.setPreferredSize(buttonSize);
        registerButton.setFont(font);
        GridBagConstraints gbc5 = new GridBagConstraints();
        gbc5.gridx = 1;
        gbc5.gridy = 4;
        gbc5.gridwidth = 1;
        gbc5.gridheight = 1;
        gbc5.fill = GridBagConstraints.HORIZONTAL;
        gbc5.weightx = 0.5;
        panel.add(registerButton, gbc5);
        String password = new String(passwordField.getPassword());
        //

        //设置登录按钮的功能
        c_button.addActionListener((e) -> {
            if (true)
                a = 1;
            else
                a = 0;
        });
        loginButton.addActionListener((e) -> {
            try {
                add(textField1.getText(), password, a);
            } catch (SQLException ex) {
                throw new RuntimeException(ex);
            }
        });
        //
        frame.setVisible(true);
    }

    private void add(String text, String text1, int a) throws SQLException {
        // 建立数据库连接
        String url = "jdbc:mysql:///test";
        String username = "root";
        String password = "000";
        Connection conn = DriverManager.getConnection(url, username, password);

        // 获取用户输入的用户名和密码
        String username1 = text;
        String password1 = text1;

        // 查询对应的数据库记录是否存在
        String sql = "SELECT password1 FROM lo_res WHERE username1 = ?";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        pstmt.setString(1, username1);
        ResultSet resultSet = pstmt.executeQuery();

        if (!resultSet.next()) {
            // 查询结果集为空,说明该用户不存在
            System.out.println("用户不存在");
            return; // 直接返回,不进行后续处理
        }

        String passwordDB = resultSet.getString("password1");
        if (!password1.equals(passwordDB)) {
            // 用户存在但密码不匹配
            System.out.println("密码错误");
            return; // 直接返回,不进行后续处理
        }

        // 如果用户存在且密码匹配,根据a的值选择打开哪个UI
        if (a == 1) {
            System.out.println("gg");
        } else {
            System.out.println("hh");
        }
        // 释放资源
        resultSet.close();
        pstmt.close();
        conn.close();
    }
}

img

img


img


登录老是报错

  • 写回答

3条回答 默认 最新

  • 皮蛋不吃粥 2023-06-19 10:13
    关注

    确定test数据库是本地?
    jdbc:mysql:///test

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 修改了问题 6月19日
  • 修改了问题 6月19日
  • 展开全部

悬赏问题

  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测