更新時(shí)間:2021-02-23 17:31:21 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1811次
JDBC驅(qū)動(dòng)程序?qū)嶋H上就是在JDBC API中實(shí)現(xiàn)定義的接口,用于與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行交互。而使用JDBC進(jìn)行數(shù)據(jù)庫(kù)操作的第一步就是驅(qū)動(dòng)注冊(cè)(當(dāng)然你得先導(dǎo)入JAR)。驅(qū)動(dòng)注冊(cè)有多種方式,第一步必然是獲得正確的驅(qū)動(dòng)名稱與URL格式。本文我們就來(lái)為大家介紹注冊(cè)JDBC驅(qū)動(dòng)程序的3種方式。
首先我們先來(lái)了解一下常用的驅(qū)動(dòng)程序名稱與URL格式:
隨著版本變化,會(huì)存在些許變動(dòng),如有不對(duì),還需重新查驗(yàn)。比如MYSQL中5與6 ,MySQL5用的驅(qū)動(dòng)是com.mysql.jdbc.Driver,MySQL6以后用的是com.mysql.cj.jdbc.Driver。
在通過(guò)驅(qū)動(dòng)管理器創(chuàng)建連接前需要進(jìn)行驅(qū)動(dòng)注冊(cè)
驅(qū)動(dòng)注冊(cè)有3種形式:
1.Class.forName("com.mysql.jdbc.Driver");
2.DriverManager.registerDriver(new com.mysql.jdbc.Driver());
3.System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver");
下面我們來(lái)詳細(xì)介紹一下這3種驅(qū)動(dòng)注冊(cè)方式:
1、比較常用
try{
???????Class.forName("com.mysql.jdbc.Driver");//加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
???????String url="jdbc:mysql://localhost:3306/databasename";//數(shù)據(jù)庫(kù)連接子協(xié)議
???????Connection conn=DriverManager.getConnection(url,"username","password");
???????Statement stmt=conn.createStatement();
???????ResultSet rs=stmt.executeQuery("select * from tablename");
???????while(rs.next()){//不斷指向下一條記錄
????????????System.out.println("DeptNo:"+rs.getInt(1));
????????????System.out.println("\tDeptName:"+rs.getString(2));
????????????System.out.println("\tLOC:"+rs.getString(3));
} ????????
????rs.close();
????stmt.close();
????conn.close();
}catch(ClassNotFoundException e){
???System.out.println("找不到指定的驅(qū)動(dòng)程序類!");
}catch(SQLException e){
????e.printStackTrace();
}
2、通過(guò)系統(tǒng)的屬性設(shè)置
try{
???????System.setProperty("jdbc.driver","com.mysql.jdbc.Driver");//系統(tǒng)屬性指定數(shù)據(jù)庫(kù)驅(qū)動(dòng)
???????String url="jdbc:mysql://localhost:3306/databasename";//數(shù)據(jù)庫(kù)連接子協(xié)議
???????Connection conn=DriverManager.getConnection(url,"username","password");
???????Statement stmt=conn.createStatement();
???????ResultSet rs=stmt.executeQuery("select * from tablename");
???????while(rs.next()){//不斷指向下一條記錄
????????????System.out.println("DeptNo:"+rs.getInt(1));
????????????System.out.println("\tDeptName:"+rs.getString(2));
????????????System.out.println("\tLOC:"+rs.getString(3));
} ????????
????rs.close();
????stmt.close();
????conn.close();
}catch(SQLException e){
????e.printStackTrace();
}
3、看起來(lái)比較直觀的一種方式,注冊(cè)相應(yīng)的db的jdbc驅(qū)動(dòng),3在編譯時(shí)需要導(dǎo)入對(duì)應(yīng)的lib
try{
???????new com.mysql.jdbc.Driver();//創(chuàng)建driver對(duì)象,加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
???????String url="jdbc:mysql://localhost:3306/databasename";//數(shù)據(jù)庫(kù)連接子協(xié)議
???????Connection conn=DriverManager.getConnection(url,"username","password");
???????Statement stmt=conn.createStatement();
???????ResultSet rs=stmt.executeQuery("select * from tablename");
???????while(rs.next()){//不斷指向下一條記錄
????????????System.out.println("DeptNo:"+rs.getInt(1));
????????????System.out.println("\tDeptName:"+rs.getString(2));
????????????System.out.println("\tLOC:"+rs.getString(3));
} ????????
????rs.close();
????stmt.close();
????conn.close();
}catch(SQLException e){
????e.printStackTrace();
}
注冊(cè)JDBC驅(qū)動(dòng)程序的3種方式,就是以上介紹到的所有的內(nèi)容。驅(qū)動(dòng)注冊(cè)就是加載數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序,是使用JDBC進(jìn)行數(shù)據(jù)庫(kù)操作的第一步。JDBC的橋接模式,提供給應(yīng)用程序開(kāi)發(fā)者的API是抽象,這個(gè)驅(qū)動(dòng)程序就是實(shí)現(xiàn),如果不能進(jìn)行成功注冊(cè),就沒(méi)辦法提供后續(xù)的服務(wù)了,所以驅(qū)動(dòng)注冊(cè)很重要。在本站的JDBC教程中還有很多你不曾知道的JDBC知識(shí),想要學(xué)好JDBC,利用閑余時(shí)間充實(shí)自己,快來(lái)觀看學(xué)習(xí)吧!
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743