新聞中心
隨著互聯網的發(fā)展,數據庫的應用越來越廣泛。在Java開發(fā)中,我們經常需要使用JDBC來操作數據庫,而正確地加載數據庫驅動語句是使用JDBC的之一步。本文將介紹。

一、什么是數據庫驅動
數據庫驅動是連接Java程序和數據庫的橋梁,它能夠讓Java程序操作各種不同的數據庫。因為不同的數據庫之間的語法和API都不相同,所以使用不同的數據庫驅動就需要不同的代碼來操作。在Java中,我們可以通過JDBC(Java Database Connectivity)來操作各種數據庫,而驅動就是JDBC連接數據庫的關鍵。
二、數據庫驅動加載
正確地加載數據庫驅動語句可以讓我們連接數據庫,而錯誤的加載方式則會導致連接失敗。在加載數據庫驅動語句時,需要注意以下幾個問題:
1.引入驅動包
驅動在不同的數據庫系統(tǒng)中可能是不同的,需要找到對應系統(tǒng)的驅動包,然后將其引入到項目中。一般來說,驅動包都會提供給用戶一個.jar包,直接將它放到項目的classpath路徑下即可。
2.靜態(tài)代碼塊或者反射
一般情況下,我們可以使用靜態(tài)代碼塊或者反射來加載數據庫驅動。靜態(tài)代碼塊是指一段類中的代碼塊,這段代碼只在類加載的時候執(zhí)行一次,因此可以用來加載驅動。反射是指在程序運行期間動態(tài)獲取、調用類和對象的方法和屬性。使用反射來加載驅動的優(yōu)點是可以靈活地根據實際需要加載不同的驅動。
以下是使用靜態(tài)代碼塊來加載MySQL驅動:
static {
try {
Class.forName(“com.mysql.jdbc.Driver”);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
以下是使用反射來加載MySQL驅動:
String driver = “com.mysql.jdbc.Driver”;
Class.forName(driver).newInstance();
3.使用服務提供者機制
Java提供了JDBC服務提供者機制(Service Provider Mechani),通過這種機制,JDBC可以在運行時自動加載驅動。要使用服務提供者機制,需要在META-INF/services/下創(chuàng)建一個文件名為java.sql.Driver的文件,內容為驅動類的全限定名。這樣,在連接數據庫時,JDBC就會自動找到并加載對應的驅動。
三、數據庫連接
加載了驅動之后,我們需要連接數據庫。下面是連接MySQL的代碼示例:
String url = “jdbc:mysql://localhost:3306/test”; //數據庫地址
String user = “root”; //數據庫用戶名
String password = “123456”; //數據庫密碼
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = DriverManager.getConnection(url, user, password);
//連接成功
stmt = conn.createStatement();
rs = stmt.executeQuery(“select * from users”);
while (rs.next()) {
System.out.println(rs.getString(“name”) + ” ” + rs.getInt(“age”));
}
} catch (SQLException e) {
//連接失敗
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
四、
加載數據庫驅動語句是使用JDBC的之一步,正確地加載可以使我們連接數據庫,而錯誤的加載方式會導致連接失敗。正確地加載數據庫驅動語句的方法包括引入驅動包、靜態(tài)代碼塊或者反射、以及使用服務提供者機制。連接數據庫時,需要提供數據庫地址、用戶名和密碼等信息,連接成功之后就可以進行數據庫的增刪改查等操作了。
在Java中連接數據庫是一個廣泛的、必要的操作,我們需要掌握正確地加載數據庫驅動語句的方法,才能更好地使用JDBC來連接數據庫。
成都網站建設公司-創(chuàng)新互聯為您提供網站建設、網站制作、網頁設計及定制高端網站建設服務!
JDBC使用步驟過程
JDBC連接數據庫
?創(chuàng)建一個以JDBC連接數據庫的程序,包含7個步驟:
1、加載JDBC驅動程序:
在連接數據庫之前,首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態(tài)方法forName(String className)實現。
例如:
try{
//加載MySql的驅動類
Class.forName(“com.mysql.jdbc.Driver”) ;
}catch(ClassNotFoundException e){
System.out.println(“找不銷咐到驅動程序類 ,加載驅動失敗!”);
e.printStackTrace() ;
}
成功加載后,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL
?連接URL定義了連接數據庫時的協議、子協議、數據源標識。
?書寫形式:協議:子協議:數據源標識
協議:在虧野純JDBC中總是以jdbc開始子協議:是橋連接的驅動程序或是數據庫管理系統(tǒng)名稱。
數據源標識:標記找到數據庫來源的地址與連接端口。
例如:
(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:
表示使用Unicode字符集。如果characterEncoding設置為 gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字符編碼方式。
3、創(chuàng)建數據庫的連接
?要連接數據庫,需要向java.sql.DriverManager請求并獲得Connection對象,該對象就代表一個數據庫的連接。
?使用DriverManager的getConnectin(String url , String username ,String password )方法傳入指定的欲連接的數據庫的路徑、數據庫的用戶名和密碼來獲得。
例如://連接MySql數據脊遲庫,用戶名和密碼都是root
String url = “jdbc: ;
String username = “root” ;
String password = “root” ;
try{
Connection con = DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println(“數據庫連接失??!”);
se.printStackTrace() ;
}
4、創(chuàng)建一個Statement
?要執(zhí)行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下種類型:
1、執(zhí)行靜態(tài)SQL語句。通常通過Statement實例實現。
2、執(zhí)行動態(tài)SQL語句。通常通過PreparedStatement實例實現。
3、執(zhí)行數據庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;PreparedStatement pstmt = con.prepareStatement(sql) ;CallableStatement cstmt = con.prepareCall(“{CALL demoSp(? , ?)}”) ;
5、執(zhí)行SQL語句
Statement接口提供了三種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate 和execute
1、ResultSet executeQuery(String sqlString):執(zhí)行查詢數據庫的SQL語句,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用于執(zhí)行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于執(zhí)行返回多個結果集、多個更新計數或二者組合的語句。 具體實現的代碼:
ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ;int rows = stmt.executeUpdate(“INSERT INTO …”) ;boolean flag = stmt.execute(String sql) ;
6、處理結果兩種情況:
1、執(zhí)行更新返回的是本次操作影響到的記錄數。
2、執(zhí)行查詢返回的結果是一個ResultSet對象。
? ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對這些行中數據的訪問。
? 使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString(“name”) ;
String pass = rs.getString(1) ; // 此方法比較高效
}
(列是從左到右編號的,并且從列1開始)
7、關閉JDBC對象
操作完成以后要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
JDBC操作數據庫的基本步驟:
1、彎李加載JDBC驅動程序。
在連接數據庫之前,首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機), 這通過java.lang.Class類的靜態(tài)方法forName(String className)實現。成功加載后,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL。
連接URL定義了連接數據庫時的協議、子協議、數據源標識。
書寫形式:協議:子協議:數據源標識。
3、創(chuàng)建數據庫的連接。
要連接數據庫,需要向java.sql.DriverManager請求并獲得Connection對象, 該對象就代表一個數據庫的連接。
使用DriverManager的getConnectin(String url , String username , String password )方法傳入指定的欲連接的數據庫的路徑、數據庫的
用戶名
和 密碼來獲得。
4、創(chuàng)建一個Statement,要執(zhí)行SQL語句,必須獲得java.sql.Statement實例。
Statement實例分為以下3 種類型:
(1)執(zhí)行靜態(tài)SQL語句。通常通過Statement實例實現。
(2)執(zhí)行動態(tài)SQL語句。通常通過PreparedStatement實例實現。
(3)執(zhí)行數據庫
存儲過程
。通常通過CallableStatement實例實現。
5、執(zhí)行SQL語句。
Statement接口提供了三種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate 和execute
6、處理兩種情況的結果。
(1)執(zhí)行更新返回的是本次操作影響到的記錄數。
(2)執(zhí)行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對這些 行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據。
7、關閉JDBC對象(關閉結果集–>關閉數據庫操作對象–>關閉連接)。
操作完成以后要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲 明順序相反:
(1)關閉記錄集。
(2)關閉聲明。
(3)關閉連接對象。
擴展資料:
一、JDBC(Java DataBase Connectivity,java數據庫連接)
是一種用于執(zhí)行SQL語句的Java API,可以為多種
關系數據庫
提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據此可以構建更高級的工具和接口,使數據庫開發(fā)人員穗鬧早能夠編寫數據庫
應用程序
,同時,JDBC也是個商標名。
二、特性
Java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 Java應用程序與各種不同數據庫之間進行對話的方法。而 JDBC 正是作為此猜雀種用途的機制。
三、用途
簡單地說,JDBC 可做三件事:與數據庫建立連接、發(fā)送 操作數據庫的語句并處理結果。
參考資料來源:
百度百科-JDBC
JDBC操作數據庫的基本步驟:
1、加載(注冊)數據庫驅動(到JVM)。
2、建立(獲?。祿爝B接。
3、創(chuàng)建(獲?。祿觳僮鲗ο?。
4、定義操作的SQL語句。
5、執(zhí)行數據庫操作。
6、獲取并操作結果集。
7、關閉對象,回收數據庫資源(關閉結果集–>關閉數據庫操作對象–>關閉連接)。
有了JDBC,向各種關系數據發(fā)送SQL語句就是一件很容易的事。
換言之,有了JDBC API,就不必為訪問Sybase數據庫專門寫一個程序,為訪問Oracle數據庫又專門寫一個程序,或為訪問Informix數據庫又編寫另一個程序等等,程序員只需用JDBC API寫一個程序就夠了,它可向相應數據庫發(fā)送SQL調用。
擴展資料:襪神
Java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,殲祥是編寫數據庫應用程序的杰出語言。所需要的只是 Java應用程序與各種不同數據庫之間進行對話的方法。而 JDBC 正是作為此種用途的機制。
JDBC 擴展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網頁,而該 applet 使用的信息可能來自遠程數據庫。
企業(yè)也可以用 JDBC 通過 Intranet 將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。
隨著越來越多的程序員開始使用Java 編程語言,對從 Java 中便捷地訪問數據庫告改虧的要求也在日益增加。
參考資料來源:
百度百科-JDBC
這個讓亂虛我想起來了當年老師用紅嘩態(tài)燃樓夢其中的一話的閉埋標題解釋“賈璉欲執(zhí)事”解釋就是1.加載驅動
2.獲取連接
3.SQL語句
4.執(zhí)行SQL
5.釋放資源
其實就是這幾個步驟了,很簡單的
JDBC連接ORACLE
下面是用JAVA 通過JDBC連接 Oracle的步驟
希望對你有幫助
(1)裝載并注冊數據庫的JDBC驅動程序
載入JDBC驅動:
Class.forName(“oracle.jdbc.driver.OracleDriver”);
注冊JDBC驅動:
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
(2)建立與數據庫的連接
要建立與數據庫的連接山神,首先要創(chuàng)建指定數據庫的URL。連接數據庫的URL對象,利用DriverManager 的getConnection方法建立的。數據庫URL對象與網絡資源的統(tǒng)一資源定位類似,其構成格式如下:
jdbc:subProtocol:
其中:
jdbc表示當前通過Java的數據庫連接進行數據庫訪問;
subProtocol表示通過某種驅動程序支持的數據庫連接機制;
subName表示在當前連接機制下的具體名稱;
hostname表示主機名;
port表示相應的連接端口;
DatabaseName表示要連接的數據庫的名稱。
這賣唯信里以與Oracle數據庫的連接為例:
連接Oracle 8/8i/9i數據庫(用thin模式)
url = jdbc:oracle:thin:@hostip:1521:oracleSID;
注意:hostip指主機的ip地址,oracleSID指數據庫的SID。
再者確定連接數據庫的用戶名與密中輪碼,即user和password 的值:
user = “ⅹⅹⅹ “;
password = “ⅹⅹⅹ“;
最后使用如下語句:
Connection con=java.sql.DriverManager.getConnection(url,user,password);
(3)創(chuàng)建Statement對象
例如:
Statement stmt = con.createStatement();
(4)調用并執(zhí)行SQL語句
例如:
String sql = “select a,b,c from table1″;//table1為你所要查詢的表名,a,b,c為所要查詢的字段
ResultSet rs = stmt.executeQuery(sql);
(5)訪問ResultSet中的記錄集并從中取出記錄
例如:
rs.next( );
rs.absolute(4);
String col1=rs.getString(1);
……..
(6)依次關閉ResultSet、Statement和Connection對象
例如:
rs.close();
stmt.close();
con.close();
1)通過Class.forName(“oracle.jdbc.driver.OracleDriver”)裝載數據庫的JDBC驅動程序
2)通過創(chuàng)建指定數據庫的URL。連接數據庫的URL對象,利用DriverManager 的getConnection方法建立的。數據庫URL對象與網絡資源的統(tǒng)一資源定位類建立連接
以上這兩點 搞定她謹局
例子:
// 數據庫驅動類
private String dbDriver = “com.microsoft.jdbc.sqlserver.SQLServerDriver”;
/并襲/ 連接數據庫url
private String dbURL = “jdbc:microsoft:
// 連接數據庫用戶名
private String dbUser = “sa”;
// 連接數據庫密碼
private String dbPwd = “sa”;
// 獲取數絕晌兄據庫連接方法, 返回Connection對象
public Connection getDBConnect() {
Connection con = null;
try {
Class.forName(this.dbDriver); // 加載數據庫驅動
con = DriverManager.getConnection(dbURL, dbUser, dbPwd); // 創(chuàng)建數據庫連接
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
不知道橡茄你要的是不是這梁談察個,你那個說法太籠統(tǒng)侍猜,沒明白
JAVA求各位大蝦指點。此段程序沒有錯誤 但是好像只能運行到連接數據庫 下面的就沒反應了 在線等。急!謝謝
是否打出“數據庫連接成功”了?如果沒有的話會不會是數據庫被別的程序已經打開了,所以不能櫻橘同時打開
另外看看是否有錯誤信息打出來慧頌孝了
更好還是設個斷點,單步跟蹤一下看看是停在哪了前稿
學編程就是這樣,我今年30歲了,五年里跳了五次槽,不知道和大家比算不算多J,沒有什么太多起伏,但我想很多朋友可能會和我有類似的經歷,不知道能不能引起你們的共鳴。30歲,開始實現我的程序員夢,從一個編程愛好者,從一個業(yè)余的程序員,一個水平不高的程序員,一個半道出家的程序員…… 我想對我上面所說的話給一個總結:
如果你不是科班出身,想要轉行而不知該怎么開始的話,建議你先看兩類書:(1)計算機原理;(2)數據結構和算法。(看數據結構之前先看C語言)。
如果你還是在校的學生,英語很差,專業(yè)課也很差。沒關系,想怎么學計算機就怎么學計算機吧。其它地只要能混到畢業(yè)證就行了。除非你對自己的未來沒有信心。(當然,如果你的理想不僅僅是要做一個程序員,那你別丟掉英語。)
不要因為自己年輕就找理由揮霍時間,少玩一點SC、CS、魔獸3、傳奇、魔力或者…….,多看點書,多練練題。
Java、.net、C++、PB、VB、Delphi、匯編到底應該學哪個?我的經驗,哪個最簡單就先學哪個、公司用哪個你就學哪個、哪個和你有緣(比如剛好你認識一個愿意幫助你的Delphi高手)你就學哪個,如果你都學,或者三天兩頭的換,我可以告訴你結果肯定是什么都不會,不要心浮氣燥,他們都只是工具,學精一門其它的就相通了,重要的是掌握編程的思想。如果你問我面向對象(好像現在已經是面向需求了)、UML、WebLogic、WebService、軟件工程、XML…….應該怎么學呀,對不起,這些我也確實不是都會,但請相信,你先實實在在的寫上十萬行以上的代碼以后,那些運森東西你自然就慢慢會了。 什么時候努力旁態(tài)畝都不晚,關鍵是你明白要努力了,大器晚成總比一事無成要好的多。
大家不要誤會,這里的假于物可不是指抄襲別人的源代碼,而是指通過學習別人的源代碼把他的思想擴展到自己的思想里去。
注:上面的十大“精華”純屬我個人的“謬論”,您自己看著消化,有用的收下,沒用的請拖入“回收站”。如果你覺得這些總結不過是一些浮華之詞,那請你先問問自己:“是不是在行動上都真正做到了。”
如果你覺得自己應該追求什么,不管遇到什么困難千萬不要放棄,一定要堅持下去。
這就是我,一個不算優(yōu)秀,不算勤奮;玩能玩通宵,學也學能學通宵;對夢想的追求很執(zhí)著;到了30才開始真正寫程序;一個很閉橋平凡但又不甘于平凡的人……我的經歷相信很多朋友都有過的,我現在也不能算是一個成功人士,但我相信我的經歷卻是值得大家借鑒的,因為我終究代表了一類人。
最后我還想說一點:現在很多朋友都抱怨中國的軟件業(yè)環(huán)境太差,前途渺茫。確實是這樣,我有同感。最后:希望所有的程序員和擁有成為程序員夢想的朋友們在新的一年里心想事成,萬事如意。請相信我:明天不一定更美好,但美好的一天一定會來!
還是錯在連接字符串里,好好找找吧,access的我也沒連過,多打幾條調試信息看看
把旁升最后一個catch中打察啟培敗唯印信息catch(SQLException e1)
{
e.printStackTrace();
}
關于加載數據庫驅動語句的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
四川成都云服務器租用托管【創(chuàng)新互聯】提供各地服務器租用,電信服務器托管、移動服務器托管、聯通服務器托管,云服務器虛擬主機租用。成都機房托管咨詢:13518219792
創(chuàng)新互聯(www.cdcxhl.com)擁有10多年的服務器租用、服務器托管、云服務器、虛擬主機、網站系統(tǒng)開發(fā)經驗、開啟建站+互聯網銷售服務,與企業(yè)客戶共同成長,共創(chuàng)價值。
名稱欄目:如何正確地加載數據庫驅動語句(加載數據庫驅動語句)
本文URL:http://fisionsoft.com.cn/article/cosgsdo.html


咨詢
建站咨詢
