не могу подключиться к jdbc через DriverManager.getConnection

188
18 ноября 2021, 07:50

Вот мой код:

package com.company;
import java.sql.*;
import java.sql.Connection;
import java.util.ArrayList;
public class Database {
    public Connection con;
    public Database() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/user?useUnicode=true&serverTimezone=UTC", "root", "");
            System.out.println("Connection success");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public ArrayList<User> getUsers() {
        ArrayList<User> users = new ArrayList<>();
        try {
            PreparedStatement ps = con.prepareStatement("SELECT * FROM users");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Long id = rs.getLong("id");
                String login = rs.getString("login");
                String password = rs.getString("password");
                users.add(new User(id, login, password));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return users;
    }
    public void AddUser(User user) {
        try {
            PreparedStatement ps = con.prepareStatement("INSERT INTO users(id, login, password) VALUES(NULL, ?, ?)");
            ps.setString(1, user.getLogin());
            ps.setString(2, user.getPassword());
            System.out.println(ps.executeUpdate()); // rows moved
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void updateLogin(Long id, String log) {
        String s = "UPDATE users SET login = " + log + " WHERE id = " + id;
        try {
            PreparedStatement ps = con.prepareStatement(s);
            ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void updatePassword(Long id, String pas) {
        String s = "UPDATE users SET password = " + pas + " WHERE id = " + id;
        try {
            PreparedStatement ps = con.prepareStatement(s);
            ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public void removeUser(Long id) {
        String s = "DELETE FROM users WHERE id = " + id;
        try {
            PreparedStatement ps = con.prepareStatement(s);
            ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Вот такая ошибка:

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
    at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836)
    at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456)
    at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
    at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.company.Database.<init>(Database.java:12)
    at com.company.Main.main(Main.java:6)
Answer 1

Вам нужно в MySql утилите предоставить доступ. Исполюзуйте эту команду

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%ваш пароль%' WITH GRANT OPTION;
READ ALSO
Вставка данных в несколько связанных таблиц одновременно

Вставка данных в несколько связанных таблиц одновременно

Хотел бы поинтересоваться, как добавлять данные в связанные таблицы одним запросомНа рисунке изображена схема БД

71
Структура базы данных, laravel

Структура базы данных, laravel

На сайте на разных страницах должен выводиться контент, редактируемый из админкиИ контент по своей структуре разный: на некоторых страницах...

311
Порождение подмножеств алгоритм

Порождение подмножеств алгоритм

Изучаю книгу АЛааксонена "Олимпиадное программирование"

238
Как правильно сконфигурировать CMakelist файл?

Как правильно сконфигурировать CMakelist файл?

У меня есть два набора файлов (основной и дополнительный) и я хотел бы держать их отдетьно друг от друга

237