在Java中连接MySQL数据库通常涉及到使用JDBC(Java Database Connectivity)驱动程序。以下是一种常见的方式,使用的是MySQL官方提供的JDBC驱动(也称为Connector/J)。以下是基本步骤和示例代码:
1. 添加JDBC驱动依赖
首先,你需要将MySQL JDBC驱动添加到你的项目中。如果你使用Maven或Gradle作为构建工具,你可以在pom.xml
或build.gradle
文件中添加相应的依赖项。
对于Maven,你的pom.xml
应该包含如下依赖:
1<dependency>
2 <groupId>mysql</groupId>
3 <artifactId>mysql-connector-java</artifactId>
4 <version>8.0.31</version>
5</dependency>
对于Gradle,你的build.gradle
应该包含如下依赖:
1implementation 'mysql:mysql-connector-java:8.0.31'
2. 加载JDBC驱动
在早期版本的Java中,你需要显式地加载JDBC驱动。但在Java 9及更高版本中,这一步骤通常是不必要的,因为驱动程序会自动加载。然而,为了兼容性,这里还是给出加载驱动的代码:
1Class.forName("com.mysql.cj.jdbc.Driver");
3. 建立数据库连接
接下来,使用DriverManager.getConnection()
方法建立一个数据库连接。你需要提供数据库URL、用户名和密码。
1String url = "jdbc:mysql://localhost:3306/your_database";
2String user = "your_username";
3String password = "your_password";
4
5Connection conn = DriverManager.getConnection(url, user, password);
4. 执行SQL语句
一旦建立了连接,你可以使用Statement
或PreparedStatement
对象执行SQL语句。
使用 Statement
:
1Statement stmt = conn.createStatement();
2String sql = "SELECT * FROM your_table";
3ResultSet rs = stmt.executeQuery(sql);
4
5while (rs.next()) {
6 System.out.println(rs.getString("column_name"));
7}
8
9rs.close();
10stmt.close();
使用 PreparedStatement
:
1String sql = "INSERT INTO your_table (column1, column2) VALUES (?, ?)";
2PreparedStatement pstmt = conn.prepareStatement(sql);
3pstmt.setString(1, "value1");
4pstmt.setInt(2, 2);
5pstmt.executeUpdate();
6
7pstmt.close();
5. 关闭资源
最后,确保关闭所有打开的资源,以避免内存泄漏。
1conn.close();
完整示例
将上述片段组合在一起,你可能得到如下代码:
1import java.sql.Connection;
2import java.sql.DriverManager;
3import java.sql.Statement;
4import java.sql.ResultSet;
5
6public class MySQLJDBCExample {
7 public static void main(String[] args) {
8 String url = "jdbc:mysql://localhost:3306/your_database";
9 String user = "your_username";
10 String password = "your_password";
11
12 try {
13 Connection conn = DriverManager.getConnection(url, user, password);
14 Statement stmt = conn.createStatement();
15 ResultSet rs = stmt.executeQuery("SELECT * FROM your_table");
16
17 while (rs.next()) {
18 System.out.println(rs.getString("column_name"));
19 }
20
21 rs.close();
22 stmt.close();
23 conn.close();
24 } catch (Exception e) {
25 e.printStackTrace();
26 }
27 }
28}
请替换上述代码中的your_database
, your_username
, your_password
, your_table
和column_name
为实际的值。