C.2 2022-11-27 18:41 采纳率: 41.2%
浏览 11
已结题

java,mysql数据库连接问题

mysql数据库连接不上
用代码块功能插入代码,请勿粘贴截图

public class AdminServiceImpl implements AdminService {
    public boolean validateAdmin(AdminDO adminDO) {
        String userName = adminDO.getUserName();
        String pwdParam = adminDO.getPwd();
        String sql = "select pwd from user where user_name = ?";
        Connection conn = null;
        PreparedStatement ps = null;

        try {
            conn = DBUtil.getConn();
            if (conn == null) {
                return false;
            }
            ps = conn.prepareStatement(sql);
            ps.setString(1, userName);
            ResultSet resultSet = ps.executeQuery();
            while (resultSet.next()) {
                String pwd = resultSet.getString(1);
                if (adminDO.getPwd().equals(pwd)) {
                    return true;
                }

            }

        } catch (Exception e) {
            e.printStackTrace();

        } finally {
            DBUtil.closeConn(conn);
            DBUtil.closePs(ps);

        }

        return false;
    }
}

public class DBUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=uft-8&useSSl=false";
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String USER_NAME = "root";
    private static final String PWD = "lpb666666";

    static {
        try {
            //com.mysql.jdbc.Driver静态代码块
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
  //获取数据库连接
    public static Connection getConn() {
        try {
            return DriverManager.getConnection(URL, USER_NAME, PWD);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }

    public static void closeConn(Connection connection) {
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    public static void closePs(PreparedStatement ps) {
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    public static void closeRs(ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}
public class LoginHandler extends KeyAdapter implements ActionListener {

    private LoginView loginView;

    public LoginHandler(LoginView loginView) {
        this.loginView = loginView;
    }

    public void actionPerformed(ActionEvent e) {
        JButton Jbutton = (JButton) e.getSource();
        String text = Jbutton.getText();
        if ("登录".equals(text)) {
            login();
        }
    }

    private void login() {
        String username = loginView.getUsernametext().getText();
        char[] chars = loginView.getPasswordtext().getPassword();
        if (username == null || "".equals(username.trim()) || chars == null) {
            JOptionPane.showMessageDialog(loginView, "用户名密码必填");
            return;
        }
        String password = new String(chars);
        System.out.println(username + ":" + password);

        if (username == null || "".equals(username.trim()) ||
                password == null || "".equals(password.trim())) {

        }
        //查询DB

        AdminService adminService = new AdminServiceImpl();
        AdminDO adminDO = new AdminDO();
        adminDO.setUserName(username);
        adminDO.setPwd(password);
        boolean flag = adminService.validateAdmin(adminDO);

        if (flag) {
            //跳转主界面销毁登录界面
            new MainView();
            loginView.dispose();
        } else {
            JOptionPane.showMessageDialog(loginView, "用户名密码错误");
        }
    }

    @Override
    public void keyPressed(KeyEvent e) {
        if (KeyEvent.VK_ENTER == e.getKeyCode()) {
            login();
        }
    }


}
public interface AdminService {
     boolean validateAdmin(AdminDO adminDO);


}
运行结果及报错内容 如下图

img

毫无思路
希望得到解答
  • 写回答

3条回答 默认 最新

  • Huazie 全栈领域优质创作者 2022-11-27 20:14
    关注

    (1)首先看下使用的 mysql 驱动jar 什么版本的,应该是 5.7以后的版本, 驱动名:"com.mysql.cj.jdbc.Driver"
    (2)其次使用新驱动名的,数据库连接URL也需要做些调整; 你这个里面还有个 不支持编码的问题,应该是 utf-8 , 不是 uft-8,注意一下!!!!

    img


    如有帮助,欢迎采纳哈!

    在这里插入图片描述

    本人的开源项目,欢迎star支持下!!!

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

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月27日