卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

JDBC連接MySQL數(shù)據(jù)庫及示例

JDBC 連接MySQL 數(shù)據(jù)庫及示例 JDBC 是Sun 公司制定的一個可以用Java 語言連接數(shù)據(jù)庫的技術(shù)。一、JDBC 基礎(chǔ)知識JDBC(Java Data Base Connectivity

JDBC 連接MySQL 數(shù)據(jù)庫及示例 JDBC 是Sun 公司制定的一個可以用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ā)人員提供了一個標(biāo)準(zhǔn)的API ,據(jù)此可以構(gòu)建 更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序,并且可跨平臺運行,并且不受數(shù)據(jù)庫供應(yīng)商的限制。

1、跨平臺運行:這是繼承了Java 語言的“一次編譯,到處運行”的特點;

2、不受數(shù)據(jù)庫供應(yīng)商的限制:巧妙在于JDBC 設(shè)有兩種接口,一個是面向應(yīng)用程序?qū)樱渥饔檬鞘沟瞄_發(fā)人員通過 SQL調(diào)用數(shù)據(jù)庫和處理結(jié)果,而不需要考慮數(shù)據(jù)庫的提供商;另一個是驅(qū)動程序?qū)?,處理與具體驅(qū)動程序的交互,JDBC 驅(qū)動程序可以利用JDBC API 創(chuàng)建Java 程序和數(shù)據(jù)源之間的橋梁。應(yīng)用程序只需要編寫一次,便可以移到各種驅(qū)動程序上運行。Sun 提供了一個驅(qū)動管理器,數(shù)據(jù)庫供應(yīng)商——如 MySQL、Oracle ,提供的驅(qū)動程序滿足驅(qū)動管理器的要求就可以被識別,就可以正常工作。所以JDBC 不受數(shù)據(jù)庫供應(yīng)商的限制。

JDBC API 可以作為連接Java 應(yīng)用程序與各種關(guān)系數(shù)據(jù)庫的紐帶,在帶來方便的同時也有負(fù)面影響,以下是JDBC 的優(yōu)、缺點。優(yōu)點如下:

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

? 可移植性強:JDBC 支持不同的關(guān)系數(shù)據(jù)庫,所以可以使同一個應(yīng)用程序支持多個數(shù)據(jù)庫的訪問,只要加載相應(yīng)的驅(qū)動程序即可; ? 通用性好:JDBC-ODBC 橋接驅(qū)動器將JDBC 函數(shù)換成ODBC ; ? 面向?qū)ο螅嚎梢詫⒊S玫腏DBC 數(shù)據(jù)庫連接封裝成一個類,在使用的時候直接調(diào)用即可。 ?

缺點如下:

訪問數(shù)據(jù)記錄的速度受到一定程度的影響;

? 更改數(shù)據(jù)源困難:JDBC 可支持多種數(shù)據(jù)庫,各種數(shù)據(jù)庫之間的操作必有不同,這就給更改數(shù)據(jù)源帶來了很大的麻煩 ?

,

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

1、在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫的驅(qū)動程序。例如,接下來的實驗中,使用的數(shù)據(jù)庫是MySQL ,所以需要去下載MySQL 支持JDBC 的驅(qū)動程序(最新的是:mysql-connector-java-5.1.18-bin.jar ) ;而開發(fā)環(huán)境是MyEclipse ,將下載得到的驅(qū)動程序加載進開發(fā)環(huán)境中(具體示例的時候會講解如何加載) 。

2、在Java 程序中加載驅(qū)動程序。在Java 程序中,可以通

過 “Class.forName (“指定數(shù)據(jù)庫的驅(qū)動程序”)” 方式來加載添加到開發(fā)環(huán)境中的驅(qū)動程序,例如加載MySQL 的數(shù)據(jù)驅(qū)動程序的代碼

為: Class.forName(“com.mysql.jdbc.Driver”)

3、創(chuàng)建數(shù)據(jù)連接對象:通過DriverManager 類創(chuàng)建數(shù)據(jù)庫連接對象Connection 。DriverManager 類作用于Java 程序和JDBC 驅(qū)動程序之間,用于檢查所加載的驅(qū)動程序是否可以建立連接,然后通過它的getConnection 方法,根據(jù)數(shù)據(jù)庫的URL 、用戶名和密碼,創(chuàng)建一個JDBC Connection 對象。如:Connection

connection = DriverManager.geiConnection(“連接數(shù)據(jù)庫的URL", "用戶名", "密碼”)。其中,URL=協(xié)議名 IP地址(域名) 端口 數(shù)據(jù)庫名稱;用戶名和密碼是指登錄數(shù)據(jù)庫時所使用的用戶名和密碼。具體示例創(chuàng)建MySQL 的數(shù)據(jù)庫連接代碼如下:

Connection

connectMySQL = DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser","root" ,"root" );

4、創(chuàng)建Statement 對象:Statement 類的主要是用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結(jié)果的對象。通過Connection 對象的 createStatement()方法可以創(chuàng)建一個Statement 對象。例如:Statement statament =

connection.createStatement(); 具體示例創(chuàng)建Statement 對象代碼如下: Statement statamentMySQL

=connectMySQL.createStatement();

,

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

statement.excuteUpdate( "INSERT INTO staff(name, age,

sex,address, depart, worklen,wage)" " VALUES ('Tom1', 321, 'M', 'china','Personnel','3','3000' ) ") ;

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

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

6、關(guān)閉數(shù)據(jù)庫連接:使用完數(shù)據(jù)庫或者不需要訪問數(shù)據(jù)庫時,通過Connection 的close() 方法及時關(guān)閉數(shù)據(jù)連接。

三、JDBC 應(yīng)用示例實驗

實驗內(nèi)容:使用phpMyAdmin 在MySQL 中創(chuàng)建數(shù)據(jù)庫(myuser ),并添加實驗所需的數(shù)據(jù)(新建staff 表,添加一些記錄);編寫Java 程序,利用JDBC 連接在MySQL 中創(chuàng)建好的數(shù)據(jù)庫(myuser ),對staff 表格進行插入、更新、刪除和查詢等操作。

實驗環(huán)境及開發(fā)工具:Win7操作系統(tǒng);jdk1.6.0_26;XAMPP 1.7.7(MySQL

5.1, phpMyAdmin);MyEclipse 8.5

實驗過程及步驟:

1、下載MySQL 支持JDBC 的驅(qū)動程序:如果已經(jīng)有了,可跳過這一步。前往MySQL 官網(wǎng)(http://www.mysql.com/products/connector/ ) 下載驅(qū)動程序, ,MySQL 針對不同的平臺提供了不同的連接器,我們需要的是DBC Driver for MySQL (Connector/J),如下圖所示,點擊 Download 跟著網(wǎng)站的引導(dǎo)進行下載。打開下載得到的壓縮包(mysql-connector-java-5.1.18.zip ),將其中的Java 包(mysql- connector-java-5.1.18-bin.jar),復(fù)制到MySQL 目錄下(僅是為了方便才放到這里) ,以備加載驅(qū)動程序時使用。

,

,

2、創(chuàng)建數(shù)據(jù)庫:使用phpMyAdmin ,登錄MySQL ,創(chuàng)建數(shù)據(jù)庫myuser ,并在其中插入一個名為staff 的表格。并添加一些數(shù)據(jù),操作步驟如圖,登錄進去MySQL 數(shù)據(jù)庫后:

1)創(chuàng)建數(shù)據(jù)庫,名稱為myuser ,編碼為utf8_general_ci(支持中文);

2)新建表格,名稱為staff ,表格有8個字段;

,

3)8個字段的設(shè)置,包括名稱、類型、值的長度、初始值、編碼等等(點擊查看大圖) ;

4)添加成功后,查看的staff 表格情況:

,

5)往表格中插入一些實驗所需數(shù)據(jù),需要插入兩條,一個是員工lucy 的,還有l(wèi)ili 的:

,

3、在MyEclips 中創(chuàng)建項目并在項目中添加MySQL 驅(qū)動程序:創(chuàng)建的項目類型可以是 Java項目或者是Java Web 項目都可以。這里創(chuàng)建的是Web 項目,項目名稱可以隨便取,我命名為“JavaWebChp07”。創(chuàng)建成功后將步驟1里下載得到的MySQL 驅(qū)動 程序包(mysql-connector-java-5.1.18-bin.jar )添加到工程的Build path中,添加過程如圖所示:

,

4、編寫JDBC 連接MySQL 數(shù)據(jù)庫的實例具體代碼,JDBC_Test.java:

,

具體代碼:

[java] view plaincopy

1.

package chp07;

2.

3. import java.sql.Connection;

4. import java.sql.DriverManager;

5. import java.sql.ResultSet;

6. import java.sql.SQLException;

7. import java.sql.Statement;

8.

9. public class JDBC_Test {

10. // 創(chuàng)建靜態(tài)全局變量

11. static Connection conn;

12.

13. static Statement st;

14.

15. public static void main(String[] args) {

16. insert(); //插入添加記錄

17. update(); //更新記錄數(shù)據(jù)

18. delete(); //刪除記錄

19. query(); //查詢記錄并顯示

20. }

21.

22. /* 插入數(shù)據(jù)記錄,并輸出插入的數(shù)據(jù)記錄數(shù)*/

23. public static void insert() {

24.

25. conn = getConnection(); // 首先要獲取連接,即連接到數(shù)據(jù)庫

26.

27. try {

28. String sql = "INSERT INTO staff(name, age, sex,addr

ess, depart, worklen,wage)"

標(biāo)簽: