而通常我們會在Class.forName("")寫成這樣Class.froName("").newInstance(); 在後面接上newInstance()有什麼用呢?其實很簡單:單單使用Class.forName("")是動態載入類是沒有用的,其最終目的是為了執行個體化對象。而Class.forName("").newInstance()返回的是object。有資料庫開發經驗朋友會發現,為什麼在我們載入資料庫驅動包的時候有的卻沒有調用newInstance( )方法呢?即有的jdbc串連資料庫的寫法裡是Class.forName(xxx.xx.xx);而有一些:Class.forName(xxx.xx.xx).newInstance(),為什麼會有這兩種寫法呢?
Class.forName("");的作用是要求JVM尋找並載入指定的類,如果在類中有靜態初始化器的話,JVM必然會執行該類的靜態程式碼片段。而在JDBC規範中明確要求這個Driver類必須向DriverManager註冊自己,即任何一個JDBC Driver的Driver類的代碼都必須類似如下:
那麼好,瞭解了Class.forName(""),我們接著來瞭解下DriverManager.getConnection(url,user,pwd);這個方法是什麼意思呢,還是拿筆記本來舉例。我們筆記本上了電池了而且機器已經識別了電池並且載入了一定的電量,那麼好,現在我們筆記本可以開機了恩,不過開機後,我們還要做一件事情,什麼事情呢,我們的電腦上安裝了作業系統,那麼我們需要選擇進入那個作業系統,而url就相當於我們要用哪個資料庫。那麼如果是個多使用者的作業系統,我們要選擇相應的使用者,那麼好user就相當於資料庫的使用者名稱。至於pwd很簡單,當然就是登陸的密碼了。
基本寫法也就是這樣了,好了,下面貼出不同資料庫的串連方法:
1、Oracle8/8i/9i資料庫(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl為資料庫的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2、DB2資料庫
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample為你的資料庫名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
3、Sql Server7.0/2000資料庫
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb為資料庫
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
4、Sybase資料庫
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
//myDB為你的資料庫名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5、Informix資料庫
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//myDB為資料庫名
Connection conn= DriverManager.getConnection(url);
6、MySQL資料庫
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB為資料庫名
Connection conn= DriverManager.getConnection(url);
7、PostgreSQL資料庫
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB"
//myDB為資料庫名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);