如何用java連線mysql資料庫

Java提供JDBC作為javasdk的一部分。在本文中,讓我們看看連線到MySQL資料庫並使用它執行查詢的細節。...

Java提供JDBC(Java數據庫連接),作為JavaSDK(軟件開發工具包)的一部分。使用這個API,很容易連接到關係數據庫,並執行查詢、**、更新和刪除記錄等常見操作。

mysql-connect-java

雖然核心jdbcapi包含在java中,但連接到MySQL或sqlserver等特定數據庫需要一個稱為數據庫驅動程序的附加組件。這個數據庫驅動程序是一個軟件組件,它將核心JDBC調用轉換為該數據庫所理解的格式。

在本文中,讓我們看看連接到MySQL數據庫的詳細信息以及如何使用它執行一些查詢。

mysql數據庫驅動程序

如上所述,為了能夠連接到MySQL數據庫,您需要MySQL的JDBC驅動程序。這稱為Connector/J驅動程序,可以從MySQL站點下載。

下載ZIP(或焦油.GZ)文件,提取歸檔文件並複製JAR文件mysql connector java--bin.jar文件去一個合適的地方。運行任何使用MySQL JDBC驅動程序的代碼都需要這個文件。

創建示例數據庫

假設您已經下載了MySQL數據庫,並在您可以訪問的地方正確設置它,那麼讓我們創建一個示例數據庫,以便我們可以使用它來連接和執行查詢。

使用您選擇的客戶機連接到數據庫,並運行以下語句來創建示例數據庫。

create database sample;

我們還需要一個用戶名和密碼才能連接到數據庫(除非您想作為管理員連接,這通常是個壞主意)。

下面創建一個名為testuser的用戶,該用戶將使用securepwd密碼從運行MySQL數據庫的同一臺計算機(由localhost指示)連接到該數據庫。

create user 'testuser'@'localhost' identified by 'securepwd';

如果要連接到另一臺計算機(名為remotemc)上運行的數據庫,則需要使用以下命令(remotemc可以是主機名或ip地址):

create user 'testuser'@'remotemc' identified by 'securepwd';

現在已經創建了用戶名和密碼,我們需要授予對前面創建的示例數據庫的訪問權。

grant all on sample.* to 'testuser'@'localhost';

或者,如果數據庫是遠程的:

grant all on sample.* to 'testuser'@'remotemc';

現在,您應該驗證是否可以使用相同的密碼作為剛剛創建的用戶連接到數據庫。您還可以在連接後運行以下命令,以確保所有權限都正確。

create table joe(id int primary key auto_increment, name varchar(25));drop table joe;

設置java類路徑

現在讓我們詳細瞭解如何從Java連接到MySQL。第一步是加載數據庫驅動程序。這是通過在適當的位置調用以下命令來實現的。

Class.forName("com.mysql.jdbc.Driver");

代碼可能拋出異常,因此如果您打算處理它(例如格式化GUI的錯誤消息),就可以捕獲它。

try { Class.forName("com.mysql.jdbc.Driver");} catch(ClassNotFoundException ex) { // use the exception here}

在類中的靜態塊中調用此代碼是非常常見的,因此如果無法加載驅動程序,程序將立即失敗。

public class Sample{ static { try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException ex) { System.err.println("Unable to load MySQL Driver"); } }}

當然,為了能夠找到驅動程序,必須使用類路徑中包含的驅動程序JAR(上面下載並提取)來調用程序,如下所示。

java -cp mysql-connector-java-<version>-bin.jar:... <class to run>

從java連接到mysql

現在我們已經解決了從java加載MySQL驅動程序的細節,讓我們開始連接數據庫。創建數據庫連接的一種方法是使用DriverManager。

String jdbcUrl = ...;Connection con = DriverManager.getConnection(jdbcUrl);

什麼是jdbcUrl?它表示連接的詳細信息,包括數據庫所在的服務器、用戶名等。下面是我們示例的示例URL。

String jdbcUrl = "jdbc:mysql://localhost/sample?user=testuser&password=secrepwd";

注意,我們已經包含了連接所需的所有參數,包括主機名(localhost)、用戶名和密碼。(包括這樣的密碼不是一個好的做法,請參閱下面的替代方法。)

使用這個jdbcUrl,這裡有一個完整的程序來檢查連接。

public class Sample{ static { try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException ex) { System.err.println("Unable to load MySQL Driver"); } } static public void main(String[] args) throws Exception { String jdbcUrl = "jdbc:mysql://localhost/sample?user=testuser&password=securepwd"; Connection con = DriverManager.getConnection(jdbcUrl); System.out.println("Connected!"); con.close(); }}

請注意,數據庫連接是程序中的寶貴資源,必須如上所述正確關閉。但是,如果出現異常,上面的代碼不會關閉連接。要在正常或異常出口關閉連接,請使用以下模式:

try(Connection con = DriverManager.getConnection(jdbcUrl)) { System.out.println("Connected!");}

如上所述,將密碼嵌入到JDBC URL中是一個壞主意。要直接指定用戶名和密碼,可以使用以下連接選項。

String jdbcUrl = "jdbc:mysql://localhost/sample";try(Connection con = DriverManager.getConnection(jdbcUrl, "testuser", "securepwd")) {}

從java查詢數據庫

現在已經建立了到數據庫的連接,讓我們看看如何執行查詢,例如查詢數據庫版本:

select version();

在java中執行一個查詢,如下所示。使用返回結果集的executeQuery()方法創建語句對象並執行查詢。

String queryString = "select version()";Statement stmt = con.createStatement();ResultSet rset = stmt.executeQuery(queryString);

打印結果集的版本,如下所示。1表示結果中列的索引,從1開始。

while ( rset.next()) { System.out.println("Version: " + rset.getString(1));}

處理結果後,需要關閉對象。

rset.close();stmt.close();

這涵蓋了從java連接到MySQL並執行簡單查詢的所有內容。

還可以查看我們的SQL命令備忘單。

  • 發表於 2021-03-11 17:39
  • 閱讀 ( 50 )
  • 分類:程式設計

你可能感興趣的文章

sql語言(sql)和mysql資料庫(mysql)的區別

...個關係資料庫可以有多個表。這些表是使用主鍵和外來鍵連線的。結構化查詢語言是用於在關係資料庫中儲存、管理和檢索資料的查詢語言。SQL是使用關係代數開發的。 SQL可以分為三個子類別。它們是資料操作語言(DDL)和資...

  • 發佈於 2020-10-17 12:07
  • 閲讀 ( 51 )

關係資料庫管理系統(rdbms)和hadoop公司(hadoop)的區別

...管理系統。在RDBMS中,表用於儲存資料,鍵和索引有助於連線表。表是資料元素的集合,它們是實體。它包含行和列。這些行表示表中的單個條目。列表示屬性。 例如,銷售資料庫可以包含客戶和產品實體。客戶可以有客戶標識...

  • 發佈於 2020-10-18 19:15
  • 閲讀 ( 50 )

選中的(checked)和java中的未檢查異常(unchecked exception in java)的區別

...異常和未檢查異常。當發生選中的異常時,Java應用程式連線到外部資源,如檔案、裝置或資料庫。這些異常由編譯器檢查。檢查的異常的一些示例包括IO異常和FileNotFound異常。當發生未檢查的異常時,應用程式不會連線到任何外...

  • 發佈於 2020-10-19 08:38
  • 閲讀 ( 61 )

春天(spring)和冬眠(hibernate)的區別

...器、程式碼庫、工具和應用程式程式設計介面(API)。它連線專案所需的所有元件。程式設計師可以使用框架在程式中使用預定義的程式碼。一些常見的基於Java的框架有Spring、Hibernate、Struts、Maven和JSF。本文討論了Spring和Hibernate...

  • 發佈於 2020-10-19 14:07
  • 閲讀 ( 56 )

如何在windows上安裝mysql資料庫

如果您經常編寫連線到資料庫伺服器的應用程式,那麼如果您知道如何在Windows機器上安裝MySQL資料庫以進行測試,這會有所幫助。 ...

  • 發佈於 2021-03-11 21:33
  • 閲讀 ( 51 )

您需要了解的有關內容管理系統的所有資訊

... 然後,更多使用者生成的內容開始以“個人資料”網站的形式出現,如雅虎和MySpace。Blogger和LiveJournal這樣的部落格服務更進一步,而桌面“網頁編輯器”使得建立一個(不好看的)網頁而不知道任何標記成為可能...

  • 發佈於 2021-03-13 12:08
  • 閲讀 ( 49 )

如何用舊計算機構建linux網路伺服器

... 如何用linux**自己的web伺服器 ...

  • 發佈於 2021-03-17 19:20
  • 閲讀 ( 54 )

5個最好的免費microsoft access資料庫替代方案

...連結 為什麼使用Microsoft Access替代方案? 最好的免費資料庫軟體 其他Microsoft Access替代方案 ...

  • 發佈於 2021-03-18 05:45
  • 閲讀 ( 60 )

如何在raspberry pi上託管wordpress站點

... 本教程的其餘部分假設Raspberry Pi已通電並連線到本地網路。您還應該為遠端命令列訪問配置SSH。 ...

  • 發佈於 2021-03-21 11:33
  • 閲讀 ( 43 )

mysql資料庫模式編寫入門指南

...,最重要的、基本的和內在的方面之一是一個結構合理的資料庫模式。這相當於建造一所需要確保地基適當鋪設的房子,否則建造優質房屋的機會大大減少。 ...

  • 發佈於 2021-03-26 19:24
  • 閲讀 ( 56 )
geva68126
geva68126

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章