コマンドは何でしょう
Class.forName("oracle.jdbc.driver.OracleDriver")
Oracleデータベースに接続しているときに正確に実行しますか?同じことをする別の方法はありますか?
コマンドは何でしょう
Class.forName("oracle.jdbc.driver.OracleDriver")
Oracleデータベースに接続しているときに正確に実行しますか?同じことをする別の方法はありますか?
A
呼び出す別のクラスに接続の詳細があり、接続が必要な各サーブレットの接続フィールドを取得するオブジェクトを作成すると、Javaはスキップされるか、再度ロードされますか?Class.forName("oracle.jdbc.driver.OracleDriver")
A
A's
Class.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を使用する従来のコードに表示されます。
Javaチュートリアルから:
以前のバージョンのJDBCでは、接続を取得するには、まずメソッドを呼び出してJDBCドライバーを初期化する必要がありました
Class.forName
。このメソッドには、タイプのオブジェクトが必要でしたjava.sql.Driver
。各JDBCドライバーには、インターフェースを実装する1つ以上のクラスが含まれていますjava.sql.Driver
。
...
クラスパスにあるJDBC 4.0ドライバーはすべて自動的にロードされます。(ただし、メソッドを使用して、JDBC 4.0より前のドライバーを手動でロードする必要がありますClass.forName
。)
Class.forName()
、返されたdriverClassへの参照をキャプチャせずに呼び出すため、一見すると何もしない操作のように見えます
Class.forName("etc.driver")
でしょうか。
Class.forName(...)
。
以前のバージョンのJDBCでは、接続を取得するには、まずメソッドを呼び出してJDBCドライバーを初期化する必要がありました
Class.forName
。クラスパスにあるJDBC 4.0ドライバーはすべて自動的にロードされます。(ただし、メソッドを使用して、JDBC 4.0より前のドライバーを手動でロードする必要がありますClass.forName
。)
したがって、Java 11で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として保存し、Webディレクトリに配置して、Webアプリケーションフォルダーを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
}
}
}
%>