Я обнаружил, что метод Class.forName инициализирует статические блоки.Какой метод Class.forName() для JDBC?
Class.forName("com.mysql.jdbc.Driver").newInstance();
После jdbc 4.0 вам не нужно вызывать этот метод. Но люди всегда используют этот метод даже после версии jdbc 4.0. Мой вопрос, почему мне нужно использовать этот метод, если я использую jdbc 4.0? Какой метод Class.forName() для JDBC 4.0 и после?
Вот мой пример кода. Я добавляю mysql-connector.jar в свою библиотеку и когда запускаю этот код. Он отлично работает.
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306","root","root");
Statement stmt = con.createStatement();
System.out.println("Created DB Connection....");
Просто люди копируют код. Если вы считаете, что вам это не нужно, попробуйте свой код без него. –
Как говорится, «вам не нужно это делать в jdbc 4.0». Это означает, что он ничего не делает, и вам не нужно это вызывать. Почему люди все еще это делают? Сила привычки, невежество, «для безопасности» (в случае непредвиденного развертывания этого кода с помощью jdbc pre-4.0). Вы можете выбрать любой из вышеперечисленных, каждый из них будет применяться к кому-то. –
Если jar-драйвер не находится в системном пути к классам, но только по пути пути к контексту (например, driver.jar является частью WAR-приложения для веб-приложений), то может потребоваться использовать «Class.forName» для загрузки драйвера. –