我已经完成了一个基本的copy-paste代码,可以在这里连接到oracle服务器:
import java.sql.Connection;
import java.sql.DriverManager;
public class OracleClass {
protected String driverName = "oracle.jdbc.driver.OracleDriver";
protected Connection dbConnection;
protected String username = "someUsername";
protected String password = "somePassword";
protected String server = "MYSERVER";
protected String port = "1521";
protected String sid = "MYSID";
public OracleClass() {
String url = "jdbc:oracle:thin:@" + server + ":" + port + ":" + sid;
Class.forName(driverName); // What does this do???
dbConn = DriverManager.getConnection(url, username, password);
}
/**
* Other methods
*/
}
这可以工作,连接,我可以查询数据库并从中获取ResultSet,但Class.forName(DriverName)
行有什么作用?它应该返回一个静态类,但我不会将它分配给任何东西(我认为我需要这样做)。看起来它什么也没做。
它做什么?需要吗?
答案 0 :(得分:2)
来自文档:
返回与具有给定字符串名称的类或接口关联的Class对象。调用此方法相当于: Class.forName(className,true,currentLoader) 其中currentLoader表示当前类的定义类加载器。
这实际上是Java SQL样板代码中的一个古老习惯用法,以确保在使用驱动程序之前可以加载和加载驱动程序类。