jdbc连接数据库

JDBC(Java Database Connectivity)是Java中用于连接和操作数据库的标准API。它提供了一种统一的方式来访问各种类型的数据库,包括关系数据库、对象数据库和文本数据库等。以下是使用JDBC连接数据库的基本步骤:

  1. 加载数据库驱动

在使用JDBC之前,需要加载相应的数据库驱动。通常可以通过Class.forName()方法来实现。例如,对于MySQL数据库,可以使用以下代码加载驱动:

Class.forName("com.mysql.cj.jdbc.Driver");
  1. 建立连接

使用DriverManager.getConnection()方法建立与数据库的连接。需要提供数据库URL、用户名和密码。例如:

String url = "jdbc:mysql://localhost:3306/mydatabase"String username = "root"String password = "password"Connection conn = DriverManager.getConnection(url, username, password);
System.out.println("连接数据库成功!");
  1. 关闭连接

在完成数据库操作后,记得关闭连接以释放资源。可以使用try-finally块来确保连接被关闭:

try {
    // 数据库操作代码
} finally {
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
  1. 使用Statement、PreparedStatement和ResultSet

JDBC主要用到三个接口:StatementPreparedStatementResultSet

  • Statement :用于执行非预编译的SQL语句。

  • PreparedStatement :用于执行预编译的SQL语句,可以提高性能并防止SQL注入。

  • ResultSet :用于存储查询结果,可以逐行读取数据。

示例代码

以下是一个完整的示例,展示了如何使用JDBC连接MySQL数据库并执行简单的查询:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) {
        Connection conn = nullStatement stmt = nulltry {
            // 1. 加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            
            // 2. 建立连接
            String url = "jdbc:mysql://localhost:3306/test"String user = "root"String password = "123456";
            conn = DriverManager.getConnection(url, user, password);
            
            // 3. 创建Statement对象
            stmt = conn.createStatement();
            
            // 4. 执行查询
            String sql = "SELECT id, name FROM users"ResultSet rs = stmt.executeQuery(sql);
            
            // 5. 处理结果
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                System.out.println("ID: " + id + ", Name: " + name);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 6. 关闭资源
            try {
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

建议

  • 使用连接池 :对于高并发应用,建议使用数据库连接池(如HikariCP、C3P0等)来管理数据库连接,以提高性能和资源利用率。

  • 异常处理 :确保在代码中正确处理所有可能的异常,包括ClassNotFoundExceptionSQLException等。

  • 资源管理 :始终确保在使用完数据库连接、语句和结果集后及时关闭它们,以避免资源泄漏。

Top