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

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

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

JDBC 連接MySQL 數(shù)據庫及示例 JDBC 是Sun 公司制定的一個可以用Java 語言連接數(shù)據庫的技術。

一、JDBC 基礎知識

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

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

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

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

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

? 可移植性強:JDBC 支持不同的關系數(shù)據庫,所以可以使同一個應用程序支持多個數(shù)據庫的訪問,只要加載相應的驅動程序即可; ? 通用性好:JDBC-ODBC 橋接驅動器將JDBC 函數(shù)換成ODBC ; ? 面向對象:可以將常用的JDBC 數(shù)據庫連接封裝成一個類,在使用的時候直接調用即可。 ?

缺點如下:

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

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

,

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

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

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

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

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

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

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

Connection

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

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

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

=connectMySQL.createStatement();

,

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

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

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

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

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

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

三、JDBC 應用示例實驗

實驗內容:使用phpMyAdmin 在MySQL 中創(chuàng)建數(shù)據庫(myuser ),并添加實驗所需的數(shù)據(新建staff 表,添加一些記錄);編寫Java 程序,利用JDBC 連接在MySQL 中創(chuàng)建好的數(shù)據庫(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 的驅動程序:如果已經有了,可跳過這一步。前往MySQL 官網(http://www.mysql.com/products/connector/ ) 下載驅動程序, ,MySQL 針對不同的平臺提供了不同的連接器,我們需要的是DBC Driver for MySQL (Connector/J),如下圖所示,點擊 Download 跟著網站的引導進行下載。打開下載得到的壓縮包(mysql-connector-java-5.1.18.zip ),將其中的Java 包(mysql- connector-java-5.1.18-bin.jar),復制到MySQL 目錄下(僅是為了方便才放到這里) ,以備加載驅動程序時使用。

,

,

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

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

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

,

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

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

,

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

,

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

,

4、編寫JDBC 連接MySQL 數(shù)據庫的實例具體代碼,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ù)據

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

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

20. }

21.

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

23. public static void insert() {

24.

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

26.

27. try {

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

ess, depart, worklen,wage)"

標簽: