JDBC連接mysql(超簡單的?。。。?/h2>

我今天好累嗚嗚嗚

改bug改了兩天了。

不過迪迪醬還是要帶你們領(lǐng)略一下JDBC和mySQL的奧秘。

那么問題來了 什么是jdbc呢???

嘻嘻讓我來告訴你:JDBC是Sun公司制定的一個(gè)可以用Java語言連接數(shù)據(jù)庫的技術(shù)。

一、JDBC基礎(chǔ)?。。?! (百度來的。嘻嘻)

JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。
JDBC為數(shù)據(jù)庫開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序,并且可跨平臺(tái)運(yùn)行,并且不受數(shù)據(jù)庫供應(yīng)商的限制。

1、跨平臺(tái)運(yùn)行:就是跟java差不多咩,只需要編寫一次,就可以移到各種驅(qū)動(dòng)程序上運(yùn)行;

2、不受數(shù)據(jù)庫供應(yīng)商的限制:JDBC設(shè)有兩種接口,一個(gè)是面向應(yīng)用程序?qū)?,它可以使得開發(fā)人員通過SQL調(diào)用數(shù)據(jù)庫和處理結(jié)果,而不用考慮數(shù)據(jù)庫的提供商;另一個(gè)是驅(qū)動(dòng)程序?qū)樱幚砼c具體驅(qū)動(dòng)程序的交互,JDBC驅(qū)動(dòng)程序可以利用JDBC API創(chuàng)建Java程序和數(shù)據(jù)源之間的橋梁。Sun提供了一個(gè)驅(qū)動(dòng)管理器,數(shù)據(jù)庫供應(yīng)商——如MySQL、Oracle,提供的驅(qū)動(dòng)程序滿足驅(qū)動(dòng)管理器的要求就可以被識(shí)別,就可以正常工作。所以JDBC不受數(shù)據(jù)庫供應(yīng)商的限制。

JDBC API可以作為連接Java應(yīng)用程序與各種關(guān)系數(shù)據(jù)庫的紐帶,當(dāng)然有很多優(yōu)點(diǎn)辣。

JDBC優(yōu)點(diǎn):

操作便捷:JDBC使得開發(fā)人員不需要再使用復(fù)雜的驅(qū)動(dòng)器調(diào)用命令和函數(shù);

可移植性強(qiáng):JDBC支持不同的關(guān)系數(shù)據(jù)庫,所以可以使同一個(gè)應(yīng)用程序支持多個(gè)數(shù)據(jù)庫的訪問,只要加載相應(yīng)的驅(qū)動(dòng)程序即可;

通用性好:JDBC-ODBC橋接驅(qū)動(dòng)器將JDBC函數(shù)換成ODBC;

面向?qū)ο螅?/strong>可以將常用的JDBC數(shù)據(jù)庫連接封裝成一個(gè)類,在使用的時(shí)候直接調(diào)用即可。

缺點(diǎn)嘛 咱就不講了。

二、JDBC連接數(shù)據(jù)庫的流程及其原理

1、在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫的驅(qū)動(dòng)程序:

我們使用的數(shù)據(jù)庫是MySQL,所以需要去下載MySQL支持JDBC的驅(qū)動(dòng)程序;而開發(fā)環(huán)境是MyEclipse,將下載得到的驅(qū)動(dòng)程序加載進(jìn)開發(fā)環(huán)境中。


一張神奇的圖

2、在Java程序中加載驅(qū)動(dòng)程序:

在Java程序中,小可愛可以通過 “Class.forName(“指定數(shù)據(jù)庫的驅(qū)動(dòng)程序”)” 方式來加載添加到開發(fā)環(huán)境中的驅(qū)動(dòng)程序。
我們加載MySQL的數(shù)據(jù)驅(qū)動(dòng)程序的代碼為:
Class.forName(“com.mysql.jdbc.Driver”)

3、創(chuàng)建數(shù)據(jù)連接對(duì)象:
通過DriverManager類創(chuàng)建數(shù)據(jù)庫連接對(duì)象Connection。

DriverManager類作用于Java程序和JDBC驅(qū)動(dòng)程序之間,用于檢查所加載的驅(qū)動(dòng)程序是否可以建立連接。

我們可以通過它的getConnection方法,根據(jù)數(shù)據(jù)庫的URL、用戶名和密碼,創(chuàng)建一個(gè)JDBC Connection 對(duì)象。
Connection connection =DriverManager.getConnection(“連接數(shù)據(jù)庫的URL", "用戶名", "密碼”)。

看清楚哦:
URL=協(xié)議名+IP地址(域名)+端口+數(shù)據(jù)庫名稱;用戶名和密碼是指登錄數(shù)據(jù)庫時(shí)所使用的用戶名和密碼。
Connection connectMySQL =DriverManager.getConnection(“jdbc:mysql://localhost:3306/mybaby","yoga" ,"521" );

4、創(chuàng)建Statement對(duì)象:
Statement 類的主要是用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結(jié)果的對(duì)象。
小可愛們可以通過Connection 對(duì)象的 createStatement()方法可以創(chuàng)建一個(gè)Statement對(duì)象。
Statement statament = connection.createStatement();
具體示例創(chuàng)建Statement對(duì)象代碼如下:
Statement statamentMySQL =connectMySQL.createStatement();

5、調(diào)用Statement對(duì)象的相關(guān)方法執(zhí)行相對(duì)應(yīng)的 SQL 語句:
通過execuUpdate()方法用來數(shù)據(jù)的更新,包括插入和刪除等操作,例如向baby表中插入一條數(shù)據(jù)的代碼:

statement.excuteUpdate( "INSERT INTO baby(name, age, sex,address, depart)" + " VALUES ('DIDI', 18, 'MM', 'china','Personnel') ") ;

通過調(diào)用Statement對(duì)象的executeQuery()方法進(jìn)行數(shù)據(jù)的查詢,而查詢結(jié)果會(huì)得到 ResulSet對(duì)象,ResulSet表示執(zhí)行查詢數(shù)據(jù)庫后返回的數(shù)據(jù)的集合,ResulSet對(duì)象具有可以指向當(dāng)前數(shù)據(jù)行的指針。
通過該對(duì)象的next()方法,使得指針指向下一行,然后將數(shù)據(jù)以列號(hào)或者字段名取出
。如果當(dāng)next()方法返回null,則表示下一行中沒有數(shù)據(jù)存在。

ResultSet resultSel = statement.executeQuery( "select * from baby" );

6、關(guān)閉數(shù)據(jù)庫連接:
當(dāng)我們使用完數(shù)據(jù)庫或者不需要訪問數(shù)據(jù)庫時(shí),就要通過Connection的close()方法及時(shí)關(guān)閉數(shù)據(jù)連接。
不然嘿嘿嘿,就會(huì)一直連著鴨。

嘿嘿

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容