Реализация интерфейса java 8 DriverAction - PullRequest
0 голосов
/ 09 октября 2018

Я запускаю простую демонстрационную программу JDBC, в которой я использовал интерфейс DriverAction и его метод отмены регистрации для проверки его функциональности, но я получил ошибку для своего класса Dirver, найдите код ниже и предложите, чего не хватает.

// error -com.mysql не может быть разрешен для ввода error

import java.sql.*;

public class Jdbcexample implements DriverAction {

    public static void main(String[] args) {
        try {
        Driver driver = new com.mysql.jdbc.Driver();/*com.mysql can not be resolve to type error */
        DriverAction driveraction = new Jdbcexample();
        DriverManager.registerDriver(driver,driveraction);
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
        Statement stmt =con.createStatement();
        ResultSet rs =stmt.executeQuery("select* from user");
        while(rs.next()) {
            System.out.println(rs.getInt(1)+""+rs.getString(2)+""+rs.getString(3));
        }
        con.close();
    DriverManager.deregisterDriver(driver);
        }
        catch(Exception e) {
            System.out.println(e);
        }

}

    @Override
    public void deregister() {
        System.out.println("Driver is deregistered");

    }
}

1 Ответ

0 голосов
/ 09 октября 2018

Ошибка сама по себе означает, что у вас нет драйвера в пути к классам при компиляции кода.Однако большая проблема заключается в том, что вам не следует этого делать.

Методы DriverManager.registerDriver являются , а не для вызова пользовательских программ.Они для драйверов JDBC, чтобы зарегистрироваться.DriverManager.registerDriver(Driver, DriverAction) - это механизм обратного вызова для драйвера, который выполняет дополнительную работу при его отмене регистрации.

Из javadoc:

Регистрирует указанный драйвер с помощью DriverManager.Вновь загруженный класс драйвера должен вызвать метод registerDriver, чтобы сообщить о себе DriverManager.Если драйвер в данный момент зарегистрирован, никаких действий не предпринимается.

Важной частью является ". Недавно загруженный класс драйвера должен вызвать метод registerDriver, чтобы сделать саму известной.в DriverManager. ".

И на DriverAction:

Интерфейс, который должен быть реализован, когда Driver хочет получить уведомление от DriverManager.

Итак, это для самих драйверов JDBC, а не для пользовательских программ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...