Java如何创建与数据库的连接?

这篇文章是关于获得与MySQL数据库的连接的示例。要连接到其他数据库,您要做的就是更改url以使其与特定数据库的url格式匹配,当然,您必须为正在使用的数据库注册正确的JDBC驱动程序。

步骤如下:

  • 定义数据库的JDBC URL。以下是MySQL数据库的JDBC URL格式。localhost是您的数据库地址,nhooo也是数据库名称。

private static final String URL = "jdbc:mysql://localhost/nhooo";
  • 定义连接的用户名和密码。

private static final String USERNAME = "root";
private static final String PASSWORD = "";
  • 注册我们程序要使用的数据库JDBC驱动程序。下面是MySQL数据库的驱动程序。

Class.forName("com.mysql.cj.jdbc.Driver");

但是,对于现代JDBC驱动程序(JDBC 4.0 /自JDK 6起),不再需要上述驱动程序注册步骤。JDBC驱动程序类将使用服务提供者机制定位。因此,您可以删除Class.forName()上面的语句,所有您需要做的就是将JDBC驱动程序放在类路径中,该驱动程序将自动加载。

  • 我们可以打开与数据库的连接。

Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
  • 执行任何数据库操作,例如选择插入更新删除

  • 最后不要忘记关闭Connection对象。我们通常在代码块的最后一个代码块中执行此try-catch操作

if (connection != null) {
    connection.close();
}

但是在下面的代码片段中,我们使用try-with-resource语句代替手动关闭连接对象,该语句将自动为我们关闭连接。

这是完整的代码片段。

package org.nhooo.example.jdbc;

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

public class ConnectionSample {
    private static final String URL = "jdbc:mysql://localhost/nhooo";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "";

    public static void main(String[] args) throws Exception {
        try (Connection connection =
                 DriverManager.getConnection(URL, USERNAME, PASSWORD)) {
            System.out.println("connection = " + connection);

            String sql = "SELECT isbn, title, published_year FROM books";
            PreparedStatement stmt = connection.prepareStatement(sql);

            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getLong("isbn") + ", " +
                    rs.getString("title") + ", " +
                    rs.getInt("published_year"));
            }
        }
    }
}

Maven依赖

<!-- 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中央