명령은 무엇입니까
Class.forName("oracle.jdbc.driver.OracleDriver")
Oracle 데이터베이스에 연결하는 동안 정확히 수행합니까? 같은 일을하는 다른 방법이 있습니까?
명령은 무엇입니까
Class.forName("oracle.jdbc.driver.OracleDriver")
Oracle 데이터베이스에 연결하는 동안 정확히 수행합니까? 같은 일을하는 다른 방법이 있습니까?
A호출하는 별도의 클래스에 연결 세부 정보가 있고 연결이 필요한 각 서블릿에 대한 연결 필드를 얻기 위해 객체를 생성 한다고 가정 하면 Java가 건너 뛰 거나 다시로드됩니까? Class.forName("oracle.jdbc.driver.OracleDriver")AA'sClass.forName("oracle.jdbc.driver.OracleDriver")
답변:
FQCN (정규화 된 클래스 이름)을 사용하여 클래스 개체에 대한 참조를 가져옵니다 oracle.jdbc.driver.OracleDriver.
지정된 클래스가 현재 클래스 로더에 의해로드되는지 확인하는 것 외에는 데이터베이스에 연결하는 것과 관련하여 아무 것도 "실행"하지 않습니다 . 글쓰기에는 근본적인 차이가 없습니다.
Class<?> driverClass = Class.forName("oracle.jdbc.driver.OracleDriver");
// and
Class<?> stringClass = Class.forName("java.lang.String");
Class.forName("com.example.some.jdbc.driver")호출에 표시 레거시 때문에 JDBC를 사용하는 코드 즉이다 기존의 JDBC 드라이버를로드하는 방법 .
에서 자바 튜토리얼 :
이전 버전의 JDBC에서 연결을 얻으려면 먼저 메소드를 호출하여 JDBC 드라이버를 초기화해야했습니다
Class.forName. 이 메서드에는 유형의 개체가 필요합니다java.sql.Driver. 각 JDBC 드라이버에는 인터페이스를 구현하는 하나 이상의 클래스가 포함되어 있습니다java.sql.Driver.
...
클래스 경로에있는 모든 JDBC 4.0 드라이버가 자동으로로드됩니다. (그러나 JDBC 4.0 이전의 모든 드라이버는 메소드를 사용하여 수동으로로드해야합니다Class.forName.)
Class.forName()에서는 반환 된 driverClass에 대한 참조를 캡처하지 않고 호출 할 수 있으므로 언뜻보기에는 작동하지 않는 작업처럼 보입니다
Class.forName("etc.driver")합니까?
Class.forName(...).
로부터 자바 JDBC 튜토리얼 :
이전 버전의 JDBC에서 연결을 얻으려면 먼저 메소드를 호출하여 JDBC 드라이버를 초기화해야했습니다
Class.forName. 클래스 경로에있는 모든 JDBC 4.0 드라이버가 자동으로로드됩니다. (그러나 JDBC 4.0 이전의 모든 드라이버는 메소드를 사용하여 수동으로로드해야합니다Class.forName.)
따라서 Java 1.6과 함께 Oracle 11g (11.1) 드라이버를 사용하는 경우을 호출 할 필요가 없습니다 Class.forName. 그렇지 않으면 드라이버를 초기화하기 위해 호출해야합니다.
Class.forName호출은 클래스 로더가 주어진 클래스를로드하도록합니다. 이것은 튜토리얼에 설명 된 수동 로딩 단계입니다.
class.forName();:)
Java 6 이전에는 DriverManager클래스가 사용하려는 JDBC 드라이버를 알지 못했습니다. Class.forName("...")드라이버 클래스를 미리로드하는 방법이었습니다.
Java 6을 사용하는 경우 더 이상이 작업을 수행 할 필요가 없습니다.
대안은 jdbc.drivers 시스템 속성 을 사용하여 JVM을 시작할 때 명령 줄에서 필요한 드라이버를 지정하는 것입니다.
oracle.jdbc.driver.OracleDriver가 아닌 oracle.jdbc.OracleDriver를 사용하십시오. Tomcat을 사용하는 경우 드라이버 jar 파일이 "WEB-INF \ lib"디렉토리에있는 경우 등록 할 필요가 없습니다. 이것을 test.jsp로 저장하고 웹 디렉토리에 넣고 Tomcat 관리자에서 웹 앱 폴더를 다시 배포합니다.
<%@ page import="java.sql.*" %>
<HTML>
<HEAD>
<TITLE>Simple JSP Oracle Test</TITLE>
</HEAD><BODY>
<%
Connection conn = null;
try {
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@XXX.XXX.XXX.XXX:XXXX:dbName", "user", "password");
Statement stmt = conn.createStatement();
out.println("Connection established!");
}
catch (Exception ex)
{
out.println("Exception: " + ex.getMessage() + "");
}
finally
{
if (conn != null) {
try {
conn.close();
}
catch (Exception ignored) {
// ignore
}
}
}
%>