```markdown
在 Java 开发中,连接数据库是常见的操作。Java 提供了强大的 JDBC (Java Database Connectivity) API,用于连接和操作关系型数据库。本文将介绍如何使用 Java 连接数据库并执行基本的数据库操作。
在开始之前,确保你的项目中已经添加了数据库的 JDBC 驱动。如果你使用的是 Maven 项目,可以在 pom.xml
文件中加入以下依赖:
xml
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
确保你已经有一个可用的数据库实例,并且知道以下信息: - 数据库 URL - 用户名 - 密码
在 Java 中,连接数据库需要用到 java.sql
包中的一些类。首先导入相关类:
java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
在 Java 中,通过 Class.forName()
方法加载并注册数据库的 JDBC 驱动。
java
Class.forName("com.mysql.cj.jdbc.Driver");
使用 DriverManager.getConnection()
方法来建立与数据库的连接。
```java String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "password";
Connection connection = DriverManager.getConnection(url, user, password); ```
通过连接对象创建一个 Statement
对象,然后使用 executeQuery()
执行 SQL 查询。
java
String query = "SELECT * FROM users";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
通过 ResultSet
获取查询结果,并进行遍历输出。
java
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
操作完成后,关闭数据库连接,释放资源。
java
resultSet.close();
statement.close();
connection.close();
```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException;
public class DatabaseExample { public static void main(String[] args) { try { // 注册 JDBC 驱动 Class.forName("com.mysql.cj.jdbc.Driver");
// 创建数据库连接
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "root";
String password = "password";
Connection connection = DriverManager.getConnection(url, user, password);
// 创建 Statement 对象
Statement statement = connection.createStatement();
// 执行查询
String query = "SELECT * FROM users";
ResultSet resultSet = statement.executeQuery(query);
// 处理查询结果
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
// 关闭资源
resultSet.close();
statement.close();
connection.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
} ```
对于高并发的应用程序,直接使用 DriverManager.getConnection()
创建数据库连接可能会导致性能瓶颈。可以使用连接池(如 HikariCP 或 Apache DBCP)来管理数据库连接。
使用 executeUpdate()
方法可以执行插入、更新或删除操作。例如:
java
String insertQuery = "INSERT INTO users (name, age) VALUES ('John', 30)";
int rowsAffected = statement.executeUpdate(insertQuery);
System.out.println("Rows affected: " + rowsAffected);
通过 JDBC,Java 提供了一种灵活的方式来连接并操作数据库。无论是执行查询还是更新,JDBC 都可以帮助我们与数据库进行交互。在实际开发中,考虑使用数据库连接池来优化性能,避免因频繁创建和销毁数据库连接而导致的资源浪费。 ```