Java如何创建BasicDataSource对象?

本示例演示如何使用BasicDataSourceApache Commons DBCP类来创建数据库连接的基本要求。可以使用此类提供的某些属性方法来定义数据源的配置。基本属性是驱动程序类名,连接URL,用户名和密码。

数据源准备就绪后,我们可以通过调用getConnection()数据源的方法来获得连接。发生错误时,此方法可能会抛出SQLException。

package org.nhooo.example.commons.dbcp;

import org.apache.commons.dbcp2.BasicDataSource;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BasicDataSourceExample {
    public static void main(String[] args) throws Exception {
        // 创建一个BasicDataSource并定义其属性
        // 包括驱动程序类名称,JDBC URL,用户名
        // 和密码。
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl("jdbc:mysql://localhost/nhooo");
        dataSource.setUsername("root");
        dataSource.setPassword("");

        // 从数据源获取连接并执行一些操作
        // 使用获得的连接进行数据库查询。
        try (Connection conn = dataSource.getConnection();
             PreparedStatement stmt = conn.prepareStatement("SELECT * FROM authors")) {
            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                System.out.println("Name: " + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

我们可以简化上面的代码,这样我们就不必像在代码片段中的 finally 块那样手动关闭 PreparedStatement 和 Connection。我们可以使用 try-with-resources 来自动关闭资源。

Maven依赖

<!-- https://search.maven.org/remotecontent?filepath=org/apache/commons/commons-dbcp2/2.6.0/commons-dbcp2-2.6.0.jar -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.6.0</version>
</dependency>
<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.17</version>
</dependency>

Maven中央
Maven中央