Class.forName 메서드가 정적 블록을 초기화한다는 것을 알게되었습니다.JDBC의 Class.forName() 메소드는 무엇입니까?
Class.forName("com.mysql.jdbc.Driver").newInstance();
jdbc 4.0 이후에는이 메소드를 호출 할 필요가 없습니다. 그러나 사람들은 항상 jdbc 4.0 버전 이후에도이 방법을 사용합니다. 내 질문에 jdbc 4.0을 사용하는 경우 왜이 방법을 사용해야합니까? JDBC 4.0 및 이후 버전의 Class.forName() 메소드는 무엇입니까?
다음은 예제 코드입니다. 나는 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 4.0 이전 버전에서 배포 된 코드의 위험성이 있음) 위의 중 하나를 선택할 수 있으며, 각각은 누군가에게 적용됩니다. –
드라이버 jar가 시스템 클래스 경로에없고 컨텍스트 클래스 경로에만있는 경우 (예 : driver.jar이 webapplication WAR의 일부인 경우) 'Class.forName'을 사용하여 드라이버를로드해야 할 수도 있습니다. –