编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

jdbc连接mysql

JDBC(Java Database Connectivity)是Java应用程序与数据库之间的桥梁,它为数据库连接提供了统一的API。在Java中连接MySQL数据库,常见的有两种方式:使用标准的JDBC驱动和使用连接池。

1. 标准JDBC驱动

这种方法是最基本的数据库连接方式,直接使用Java提供的JDBC API连接数据库。优点是简单,容易实现,适合于小型应用或学习目的。缺点是每次建立连接都需要打开一个新的物理连接,性能较低,不适合于生产环境。

示例代码:

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

public class JdbcExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/test_db";
        String username = "root";
        String password = "123456";

        try {
            // 加载MySQL JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 获取数据库连接
            Connection connection = DriverManager.getConnection(url, username, password);

            // 创建一个Statement对象
            Statement statement = connection.createStatement();

            // 执行一个查询
            ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

            // 处理查询结果
            while (resultSet.next()) {
                System.out.println("User: " + resultSet.getString("username"));
            }

            // 关闭资源
            resultSet.close();
            statement.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. 使用连接池

连接池是在应用程序启动时创建一定数量的数据库连接,并在程序运行过程中复用这些连接的机制。优点是提高了数据库连接性能,适合于生产环境。缺点是需要额外引入连接池库,配置稍微复杂一些。

常见的连接池有C3P0、HikariCP、DBCP等,这里以HikariCP为例(因为它性能较好,配置简单):

添加HikariCP Maven依赖:

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>4.0.3</version>
</dependency>

示例代码:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

public class JdbcWithHikariCPExample {
    public static void main(String[] args) {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl("jdbc:mysql://localhost:3306/test_db");
        config.setUsername("root");
        config.setPassword("123456");
        config.addDataSourceProperty("cachePrepStmts", "true");
        config.addDataSourceProperty("prepStmtCacheSize", "250");
        config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

        HikariDataSource dataSource = new HikariDataSource(config);

        try (Connection connection = dataSource.getConnection()) {
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

            while (resultSet.next()) {
                System.out.println("User: " + resultSet.getString("username"));
            }

            resultSet.close();
            statement.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这两种方法都可以实现连接MySQL数据库并执行查询操作,但在实际生产环境中推荐使用连接池,以提高性能。

未经允许不得转载: 技术文章 » Java编程 » jdbc连接mysql