當前位置:首頁 » 操作系統 » java資料庫連接驅動

java資料庫連接驅動

發布時間: 2022-03-03 18:08:23

java載入資料庫連接驅動,為什麼要用Class.forName()方法

目的是為了實例化對象。

Class.forName("")返回的是類

Class.forName("").newInstance()返回的是object

剛才提到,Class.forName("");的作用是要求JVM查找並載入指定的類,如果在類中有靜態初始化器的話,JVM必然會執行該類的靜態代碼 段。而在JDBC規范中明確要求這個Driver類必須向DriverManager注冊自己,即任何一個JDBC Driver的 Driver類的代碼都必須類似如下:
public class MyJDBCDriver implements Driver {static {DriverManager.registerDriver(new MyJDBCDriver());}}既然在靜態初始化器的中已經進行了注冊,所以我們在使用JDBC時只需要Class.forName(XXX.XXX);就可以了。

we just want to load the driver to jvm only, but not need to user the instance of driver, so call Class.forName(xxx.xx.xx) is enough, if you call Class.forName(xxx.xx.xx).newInstance(), the result will same as calling Class.forName(xxx.xx.xx), because Class.forName(xxx.xx.xx).newInstance() will load driver first, and then create instance, but the instacne you will never use in usual, so you need not to create it.

總結:jdbc資料庫驅動程序最終的目的,是為了程序員能拿到資料庫連接,而進行jdbc規范的資料庫操作。拿到連接的過程是不需要你自己來實例化驅動程序的,而是通過 DriverManger.getConnection(string str); 。因此一般情況下,對於程序員來說,除非特別需求,是不會自己去實例化一個資料庫驅動使用裡面的方法的。

② java-jdbc,載入資料庫驅動

Java語言本身只提供了資料庫連接和操作介面,而實現這些介面的就是資料庫廠商了,所以每次你要連接資料庫就必須下載對應資料庫廠商的JDBC驅動,也就是介面實現程序。這個需要持久的預設環境,就是你必須告訴你的程序你的介面實現程序在哪。也就是哪個jdbc驅動程序的包在哪,java程序在連接資料庫之前需要通過反射機制創建jdbc驅動程序包中的所有類。

③ 純java驅動資料庫連接

JDBC貝

④ java與mysql連接資料庫的代碼和載入驅動的方法

你這個程序是一個stand alone的程序,所以你把mysql-connector-java-5.0.5-bin.jar放到tomcat/common/lib目錄下肯定是不對的。放到jre/lib/ext也不一定會載入。如果你用IDE開發的話,在Classpath中把mysql-connector-java-5.0.5-bin.jar添加進去執行就OK了,如果不是的話,你需要在執行的時候這么寫(比如你放到d:\)
java -cp d:\mysql-connector-java-5.0.5-bin.jar data

⑤ java 資料庫連接 JDBC驅動載入

你只是把Java類復制到另一個工程去了,在現有的工程裡面classpath並沒有更改,所以你只要在classpath裡面把JDBC驅動添加上就OK了!

⑥ java連接資料庫驅動的那個jar到底起什麼作用

jdk 本身沒有提供訪問資料庫的能力,它只是提供了一些介面,具體功能由各個資料庫的的驅動jar包來實現,舉個例子,Connection 它只是一個介面,具體的實現由具體的資料庫的的驅動jar包實現,你可以在mysql的驅動jar包中找到這個介面的實現。那資料庫的驅動jar包是如何和jdk相關的資料庫訪問類,介面相關聯的呢?是能通 Class.forName, 這就是為什麼在訪問資料庫之前都要寫一句Class.forName("com.mysql.jdbc.Driver")。

⑦ java連接資料庫的驅動程序在哪

Class.forName("com.mysql.jdbc.Driver");
驅動程序必須在webinf/lib中存在,就是把jdbc的jar文件考到lib中.不同的資料庫驅動不同.也就是jar文件不同.

連接字元串.
資料庫地址:不同的資料庫這句話不一樣,這個是mysql的.
jdbc:mysql://localhost:3306/practice9,那個3306是資料庫的埠.practice9是資料庫的名字.
oracle,access,sqlserver的連接都不同.
資料庫用戶名:root
資料庫密碼:123

⑧ JAVA程序可以用純JAVA的什麼驅動程序,實現與資料庫連接。

java是被稱為跨平台的語言,java里處理資料庫可以用JDBC來實現:
JDBC分為編程介面和驅動程序兩類,編程介面是sun公司提供的,驅動程序則由資料庫公司編寫。我們編程的時候使用介面調用驅動,所以不用關心每種資料庫的具體差異。

除了連接資料庫時代碼不一樣外,編程介面都是統一的,所以增刪改查操作都是一樣的。
連接資料庫必須要裝有相關資料庫的驅動程序才行。
連接資料庫前,必須要做兩件事:
1.創建一個驅動對象
2.用驅動管理器注冊驅動對象
在java里可以有三種方式做到以上兩件事:(以oracle為例)
1.用類反射機制:Class.forName(<資料庫類名>);
Class.forName("oracle.jdbc.driver.OracleDriver");//這段代碼
表面作用是獲取oracle的類對象,實際上,在這段代碼里已經創建了一個oracle的驅動對象,並且在驅動管理器里注冊了。(各位可以想想這個對象是在哪個時候創建的?答案我最後揭曉,很有意思的哈)
2.自己創建驅動對象,並且注冊。
Driver oracle=new oracle.jdbc.driver.OracleDriver();//創建驅動對象。
DriverManager.register(oracle);//注冊驅動程序;
3.利用java虛擬機載入(這個我也不會哈,就不講了)

下面給一個具體連接資料庫的代碼:

Class.forName("oracle.jdbc.driver.OracleDriver");
String url="oracle:jdbc:thin:@<資料庫IP>:<埠號(默認1521)>:<資料庫名>";
String userName="xxx";
String passwd="xxxxxx";
Connection con=DriverManager.getConnection(url,userNme,passwd);//連接資料庫了。

Statement s=con.getStatement();//創建資料庫操作對象
String sql="select * from .....";
s.executeUpdate(sql);//將sql語句送到資料庫,編譯執行sql語句。
//資料庫資源不會自動釋放,所以用完了必須關掉。關閉順序
ResultSet,Statement,Connection(這里沒有用ResultSet所以沒有關閉)。
s.closed();
con.closed();

每種資料庫都是這么連接和執行的。不同的是資料庫類名和url,這些樓主自己去網上搜下很容易找到,樓上諸位都講了好些。
說下4樓的冗餘代碼,並且也公布上面問題的答案:
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
newInstance();這句代碼是多餘的。
因為在類載入的時候,在靜態初始化代碼塊里,已經創建了一個驅動對象,並且已經注冊了。

⑨ java中連接資料庫里的數據源驅動器和jdbc驅動器是一回事嗎,還是說數據源驅動器是運行資料庫,jdbc是連接的

通過JAVA的內置的JDBC訪問資料庫,統稱JDBC方法。驅動就有很多種,基本每一種DB,都有一個驅動,有的還有多種驅動。
下面是Oracle的更新例子

Connection conn=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");

String url="jdbc:oracle:thin:@192.168.1.111:1521:XE";
String user="user1", pwd="user1";
conn=DriverManager.getConnection(url, user, pwd);

String sql = "UPDATE family SET income=?,pay=?,time=?,note=? WHERE fnumber=?";
PreparedStatement pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, income);
pstmt1.setString(2, pay);
pstmt1.setString(3, time);
pstmt1.setString(4, note);
pstmt1.setString(5, fnumber);
pstmt1.executeUpdate();
return "修改成功";
}catch(Exception e){
e.printStackTrace();
return "修改失敗" ;
}finally{
if(conn!=null){
try{
conn.close();
}catch(Exception e){
}
}
}

⑩ java 資料庫驅動程序 注冊 連接

首先要下載SQL2005的JDBC的Jar文件,可以選擇微軟官方的sqljdbc.jar,或者JTDS的jtds-1.2.2.jar文件,然後把這個文件加入到你的工程的擴展類庫中:
微軟官方:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;
DatabaseName=資料庫名");
JTDS
Class.forName("net.sourceforge.jtds.jdbc.Driver");
DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/資料庫名")

熱點內容
如何遠程連接伺服器顯示全屏 發布:2024-09-23 13:24:01 瀏覽:382
整合解壓 發布:2024-09-23 12:54:55 瀏覽:715
java的字元串類型 發布:2024-09-23 12:54:09 瀏覽:838
cisco模擬器如何連接ftp伺服器 發布:2024-09-23 12:41:11 瀏覽:798
工作買電腦還是買伺服器 發布:2024-09-23 12:36:59 瀏覽:151
5gm30配置有什麼不一樣 發布:2024-09-23 12:17:37 瀏覽:360
愛奇藝自動緩存 發布:2024-09-23 12:06:43 瀏覽:460
第三方模塊的編譯方法 發布:2024-09-23 11:52:01 瀏覽:97
編譯語言用什麼軟體 發布:2024-09-23 11:47:12 瀏覽:723
合區後伺服器滿員怎麼辦 發布:2024-09-23 11:40:50 瀏覽:135