JAVA作為一種高級(jí)編程語言,常常被用來開發(fā)Web應(yīng)用,而與Web應(yīng)用相關(guān)的數(shù)據(jù)庫操作中,MySQL是最常用的數(shù)據(jù)庫之一。以下是關(guān)于 JAVA 連接 MySQL 數(shù)據(jù)庫的方法。
首先需要導(dǎo)入連接 MySQL 數(shù)據(jù)庫的驅(qū)動(dòng)包 mysql-connector-java。這可以通過使用 Maven 或 Gradle 來自動(dòng)下載,也可以手動(dòng)下載該驅(qū)動(dòng)包并將其添加到項(xiàng)目的 classpath 中。
//導(dǎo)入驅(qū)動(dòng)包 import java.sql.*; import com.mysql.jdbc.Driver; //連接數(shù)據(jù)庫 Connection connection = null; Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8"; String user = "root"; String password = "root"; connection = DriverManager.getConnection(url, user, password);
上述代碼中,首先使用 Class.forName 方法加載 MySQL 驅(qū)動(dòng),然后通過指定數(shù)據(jù)庫的 URL、用戶名、密碼等信息來建立連接。其中 URL 由以下部分組成:
- jdbc:mysql:// :表示使用 MySQL 數(shù)據(jù)庫連接方式
- localhost :表示 MySQL 服務(wù)器的 IP 地址或主機(jī)名
- 3306 :表示 MySQL 服務(wù)器的端口號(hào)
- mydatabase :表示要連接的數(shù)據(jù)庫名稱
- useUnicode=true :使用 Unicode 編碼傳輸數(shù)據(jù),確保數(shù)據(jù)傳輸?shù)目煽啃?/li>
- characterEncoding=utf-8 :使用 UTF-8 編碼傳輸數(shù)據(jù),確保數(shù)據(jù)傳輸?shù)恼_性
- useSSL=false :關(guān)閉 SSL 連接,提高傳輸效率
- serverTimezone=GMT%2B8 :設(shè)置時(shí)區(qū)為東八區(qū),避免出現(xiàn)時(shí)間差異導(dǎo)致的錯(cuò)誤
建立連接后,我們就可以使用已經(jīng)連接的 Connection 對(duì)象來執(zhí)行相應(yīng)的數(shù)據(jù)庫操作。
例如,我們可以執(zhí)行查詢語句來獲取數(shù)據(jù)庫中的數(shù)據(jù):
//執(zhí)行查詢語句 Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable"); //遍歷結(jié)果集 while (resultSet.next()) { String id = resultSet.getString("id"); String name = resultSet.getString("name"); int age = resultSet.getInt("age"); System.out.println("id: " + id + ", name: " + name + ", age: " + age); } //關(guān)閉連接 resultSet.close(); statement.close(); connection.close();
上述代碼中,我們首先使用 Connection 對(duì)象創(chuàng)建 Statement 對(duì)象,然后調(diào)用其 executeQuery 方法來執(zhí)行查詢語句。查詢結(jié)果保存在 ResultSet 對(duì)象中,我們通過調(diào)用其 next 方法來遍歷所有結(jié)果集。注意,next 方法每次只會(huì)返回一個(gè)數(shù)據(jù)行,我們需要在循環(huán)中不斷調(diào)用此方法才能遍歷完整個(gè)結(jié)果集。
最后,我們要注意及時(shí)關(guān)閉數(shù)據(jù)庫連接,以便釋放資源和確保應(yīng)用程序的可靠性。