更新時間:2021-02-23 17:31:21 來源:動力節(jié)點(diǎn) 瀏覽1798次
JDBC驅(qū)動程序?qū)嶋H上就是在JDBC API中實(shí)現(xiàn)定義的接口,用于與數(shù)據(jù)庫服務(wù)器進(jìn)行交互。而使用JDBC進(jìn)行數(shù)據(jù)庫操作的第一步就是驅(qū)動注冊(當(dāng)然你得先導(dǎo)入JAR)。驅(qū)動注冊有多種方式,第一步必然是獲得正確的驅(qū)動名稱與URL格式。本文我們就來為大家介紹注冊JDBC驅(qū)動程序的3種方式。
首先我們先來了解一下常用的驅(qū)動程序名稱與URL格式:
隨著版本變化,會存在些許變動,如有不對,還需重新查驗(yàn)。比如MYSQL中5與6 ,MySQL5用的驅(qū)動是com.mysql.jdbc.Driver,MySQL6以后用的是com.mysql.cj.jdbc.Driver。
在通過驅(qū)動管理器創(chuàng)建連接前需要進(jìn)行驅(qū)動注冊
驅(qū)動注冊有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");
下面我們來詳細(xì)介紹一下這3種驅(qū)動注冊方式:
1、比較常用
try{
???????Class.forName("com.mysql.jdbc.Driver");//加載數(shù)據(jù)庫驅(qū)動
???????String url="jdbc:mysql://localhost:3306/databasename";//數(shù)據(jù)庫連接子協(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ū)動程序類!");
}catch(SQLException e){
????e.printStackTrace();
}
2、通過系統(tǒng)的屬性設(shè)置
try{
???????System.setProperty("jdbc.driver","com.mysql.jdbc.Driver");//系統(tǒng)屬性指定數(shù)據(jù)庫驅(qū)動
???????String url="jdbc:mysql://localhost:3306/databasename";//數(shù)據(jù)庫連接子協(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、看起來比較直觀的一種方式,注冊相應(yīng)的db的jdbc驅(qū)動,3在編譯時需要導(dǎo)入對應(yīng)的lib
try{
???????new com.mysql.jdbc.Driver();//創(chuàng)建driver對象,加載數(shù)據(jù)庫驅(qū)動
???????String url="jdbc:mysql://localhost:3306/databasename";//數(shù)據(jù)庫連接子協(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();
}
注冊JDBC驅(qū)動程序的3種方式,就是以上介紹到的所有的內(nèi)容。驅(qū)動注冊就是加載數(shù)據(jù)庫的驅(qū)動程序,是使用JDBC進(jìn)行數(shù)據(jù)庫操作的第一步。JDBC的橋接模式,提供給應(yīng)用程序開發(fā)者的API是抽象,這個驅(qū)動程序就是實(shí)現(xiàn),如果不能進(jìn)行成功注冊,就沒辦法提供后續(xù)的服務(wù)了,所以驅(qū)動注冊很重要。在本站的JDBC教程中還有很多你不曾知道的JDBC知識,想要學(xué)好JDBC,利用閑余時間充實(shí)自己,快來觀看學(xué)習(xí)吧!
初級 202925
初級 203221
初級 202629
初級 203743