MySQL是目前最流行的開源關係型資料庫,而Java是應用最廣泛的編程語言之一。本文將會介紹如何在Java中使用MySQL資料庫,包括連接MySQL資料庫、執行SQL語句、以及讀取結果等基本操作。
一、連接MySQL資料庫
在Java中連接MySQL資料庫需要使用JDBC驅動程序,在使用JDBC驅動程序之前需要先將其導入到你的Java工程中。通常情況下,我們可以通過在Maven依賴中添加以下內容來導入JDBC驅動程序:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
然後,就可以連接MySQL資料庫了。代碼如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
private static String URL = "jdbc:mysql://localhost:3306/test?useSSL=false";
private static String USER = "root";
private static String PASSWORD = "123456";
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
在上面的代碼中,我們首先定義了MySQL資料庫的連接URL、用戶名和密碼。然後,在靜態代碼塊中載入JDBC驅動程序,最後通過getConnection()方法獲取連接。注意,getConnection()方法有可能會拋出SQLException異常,因此我們需要在調用getConnection()方法時進行異常捕獲。
二、執行SQL語句
連接成功後,我們就可以執行SQL語句了。在Java中執行SQL語句有兩種方式,分別是Statement和PreparedStatement。
1. 使用Statement
Statement是一種普通的SQL語句執行方式,它的執行速度較快,但是在執行動態SQL語句時有一定的局限性。代碼如下:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class StatementDemo {
public static void main(String[] args) throws SQLException {
Connection conn = DBUtil.getConnection();
Statement statement = conn.createStatement();
String sql = "select * from user";
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getInt("age"));
}
statement.close();
rs.close();
conn.close();
}
}
在上面的代碼中,我們首先獲取連接和創建Statement對象,然後使用executeQuery()方法執行SQL語句,最後通過ResultSet對象讀取查詢結果。在使用完Statement對象之後,我們需要手動調用close()方法關閉Statement對象、ResultSet對象和連接,以釋放資源。
2. 使用PreparedStatement
PreparedStatement是一種預編譯的SQL語句執行方式,它的執行速度相對較慢,但是在執行動態SQL語句時較為靈活。代碼如下:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class PreparedStatementDemo {
public static void main(String[] args) throws SQLException {
Connection conn = DBUtil.getConnection();
String sql = "select * from user where age = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 20);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name"));
}
pstmt.close();
rs.close();
conn.close();
}
}
在上面的代碼中,我們首先獲取連接和創建PreparedStatement對象,然後使用setXXX()方法設置佔位符的值,並且使用executeQuery()方法執行SQL語句,最後通過ResultSet對象讀取查詢結果。在使用完PreparedStatement對象之後,我們需要手動調用close()方法關閉PreparedStatement對象、ResultSet對象和連接,以釋放資源。
三、讀取結果
在Java中讀取查詢結果需要使用ResultSet對象,它可以獲取查詢結果中的每一行數據,以及每一列數據。代碼如下:
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ResultSetDemo {
public static void main(String[] args) throws SQLException {
Connection conn = DBUtil.getConnection();
Statement statement = conn.createStatement();
String sql = "select * from user";
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
System.out.println(id + " " + name + " " + age);
}
statement.close();
rs.close();
conn.close();
}
}
在上面的代碼中,我們使用while循環遍歷ResultSet對象,其中rs.getInt(“id”)表示獲取查詢結果中id列的值,rs.getString(“name”)表示獲取查詢結果中name列的值,rs.getInt(“age”)表示獲取查詢結果中age列的值。
總結
本文介紹了在Java中連接MySQL資料庫、執行SQL語句、以及讀取結果等基本操作,同時介紹了使用Statement和PreparedStatement兩種SQL語句執行方式。通過本文的學習,相信讀者已經掌握了在Java中使用MySQL資料庫的基本技能。
原創文章,作者:EMFL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142338.html