myeclipse中串連mysql資料庫範例程式碼_Mysql

來源:互聯網
上載者:User

1. 環境配置

下載地址:http://www.mysql.com/downloads/mysql/ 真麻煩,下載的話還需要註冊和登入以及填個表。上面的資訊還挺全的,亂填的資訊也是可以接受的~~ 下載後按提示安裝即可,最後設定登入mysql用的密碼。安裝完成後,測試連接資料庫。在開始-程式中點擊MYSQL5.5 Command Line cilent,輸入剛才設定的密碼後,應該後就能連上mysql伺服器了。

在安裝後的軟體包中,mysql_server\Connector J XXXX中可以找到一個jar包,這個jar包是java程式串連mysql資料庫必須的。若沒有這個包,程式碼將提示:ClassNotFoundExceptioncom.mysql.jdbc.Driver的錯誤。

建立一個java項目,並在項目中建立一個存放jar 包的檔案夾(如 lib),將mysql-connector-java-X.X.X-bin.jar 複製到檔案夾中,選中jar包右擊--->Build Path--->Add To Build Path,即可。若建立的是一個web項目,而放在WEB-INF下的lib檔案夾中即可。

2. JDBC介紹

JDBC是Sun公司制定的一個可以用Java語言串連資料庫的技術。

2.1 JDBC基礎知識       

JDBC(Java Data Base Connectivity,java資料庫連接)是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC為資料庫開發人員提供了一個標準的API,據此可以構建更進階的工具和介面,使資料庫開發人員能夠用純 Java API 編寫資料庫應用程式,並且可跨平台運行,並且不受資料庫供應商的限制。

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

2、不受資料庫供應商的限制:巧妙在於JDBC設有兩種介面,一個是面嚮應用程式層,其作用是使得開發人員通過SQL調用資料庫和處理結果,而不需要考慮資料庫的供應商;另一個是驅動程式層,處理與具體驅動程式的互動,JDBC驅動程式可以利用JDBC API建立Java程式和資料來源之間的橋樑。應用程式只需要編寫一次,便可以移到各種驅動程式上運行。Sun提供了一個驅動管理器,資料庫供應商——如MySQL、Oracle,提供的驅動程式滿足驅動管理器的要求就可以被識別,就可以正常工作。所以JDBC不受資料庫供應商的限制。

JDBC API可以作為串連Java應用程式與各種關聯式資料庫的紐帶,在帶來方便的同時也有負面影響,以下是JDBC的優、缺點。

優點如下:

操作便捷:JDBC使得開發人員不需要再使用複雜的磁碟機調用命令和函數;
可移植性強:JDBC支援不同的關聯式資料庫,所以可以使同一個應用程式支援多個資料庫的訪問,只要載入相應的驅動程式即可;
通用性好:JDBC-ODBC橋接磁碟機將JDBC函數換成ODBC;
物件導向:可以將常用的JDBC資料庫連接封裝成一個類,在使用的時候直接調用即可。

缺點如下:

訪問資料記錄的速度受到一定程度的影響;
更改資料來源困難:JDBC可支援多種資料庫,各種資料庫之間的操作必有不同,這就給更改資料來源帶來了很大的麻煩

2.2 JDBC串連資料庫的流程及其原理

1) 在開發環境中載入指定資料庫的驅動程式。例如,接下來的實驗中,使用的資料庫是MySQL,所以需要去下載MySQL支援JDBC的驅動程式;而開發環境是MyEclipse,將下載得到的驅動程式載入進開發環境中(具體樣本的時候會講解如何載入)。

2) 在Java程式中載入驅動程式。在Java程式中,可以通過 “Class.forName(“指定資料庫的驅動程式”)” 方式來載入添加到開發環境中的驅動程式,例如載入MySQL的資料驅動程式的代碼為:  Class.forName(“com.mysql.jdbc.Driver”)

3) 建立資料連線對象:通過DriverManager類建立資料庫連接對象Connection。DriverManager類作用於Java程式和JDBC驅動程式之間,用於檢查所載入的驅動程式是否可以建立串連,然後通過它的getConnection方法,根據資料庫的URL、使用者名稱和密碼,建立一個JDBC Connection 對象。如:Connection connection =  DriverManager.getConnection(“串連資料庫的URL", "使用者名稱", "密碼”)。其中,URL=協議名+IP地址(網域名稱)+連接埠+資料庫名稱;使用者名稱和密碼是指登入資料庫時所使用的使用者名稱和密碼。具體樣本建立MySQL的資料庫連接代碼如下:

複製代碼 代碼如下:
Connection connectMySQL  =  DriverManager.getConnection(“jdbc:mysql://localhost:3306/myuser","root" ,"root" );

4) 建立Statement對象:Statement 類的主要是用於執行靜態 SQL 陳述式並返回它所產生結果的對象。通過Connection 對象的 createStatement()方法可以建立一個Statement對象。例如:Statement statament = connection.createStatement(); 具體樣本建立Statement對象代碼如下:

複製代碼 代碼如下:
Statement statamentMySQL =connectMySQL.createStatement();

另外,一般情況下都可以使用PreparedStatement來代碼Statement,因數PreparedStatement可以防止SQL注入攻擊,防止資料庫緩衝池溢出,代碼的可讀性,可維護性。具體樣本建立PreparedStatement代碼如下:

複製代碼 代碼如下:
String sql = "Select title, year_made from movies where year_made >= ? and year_made <= ?";
 PreparedStatement ps =connectMySQL.prepareStatement(sql);

5) 調用Statement對象的相關方法執行相對應的 SQL 陳述式:通過execuUpdate()方法用來資料的更新,包括插入和刪除等操作,例如向staff表中插入一條資料的代碼:

複製代碼 代碼如下:
statement.excuteUpdate( "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 321, 'M', 'china','Personnel','3','3000' ) ") ;

若使用PreparedStatement,則:

prest.setInt(1,1980); //表示第1個參數為1980prest.setInt(2,2004);ResultSet rs = prest.executeQuery();

通過調用Statement對象的executeQuery()方法進行資料的查詢,而查詢結果會得到 ResultSet對象,ResultSet表示執行查詢資料庫後返回的資料的集合,ResultSet對象具有可以指向當前資料行的指標。通過該對象的next()方法,使得指標指向下一行,然後將資料以列號或者欄位名取出。如果當next()方法返回null,則表示下一行中沒有資料存在。使用範例程式碼如下:

複製代碼 代碼如下:
ResultSet resultSet = statement.executeQuery( "select * from staff" );

6) 關閉資料庫連接:使用完資料庫或者不需要訪問資料庫時,通過Connection的close() 方法及時關閉資料連線。

3. 測試代碼

配置好環境後,就可以寫代碼測試是否能連通啦!

import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement; public class TestMysqlConn { public static void main(String[] args) {  Connection con;   Statement stmt;   ResultSet rs;     try {   Class.forName("com.mysql.jdbc.Driver").newInstance();         //test為資料庫名,_test為表名。_test表中有三個欄位:id name description   con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","root");    stmt = con.createStatement();     rs = stmt.executeQuery("select * from _test");        while(rs.next()){   int num = rs.getInt("id");   String name = rs.getString("name");   String des = rs.getString("description");   System.out.println(num + " " + name + " " + des);  }   stmt.close();  conn.close();  } catch (Exception e) {   e.printStackTrace();   System.out.println("串連失敗");  } }}

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.