【Java Advanced】JDBCログインケースの詳細説明

ここに画像の説明を挿入します

この記事では、単純な JDBC ログインのケースを使用して、Java Database Connection (JDBC) を使用してデータベースに接続し、ユーザー認証やその他の操作を実行する方法を詳しく紹介します。今回はデータベース初心者向けに、簡単なログインシステムを一から構築していきます。

JDBCとは何ですか?

JDBC は Java Database Connectivity の略称です。これは Java 標準ライブラリの一部であり、データベースとの通信に使用されます。JDBC を通じて、Java アプリケーションは MySQL、Oracle、SQL Server などのさまざまなリレーショナル データベースに接続し、データのクエリ、挿入、更新、削除などのデータベース操作を実行できます。

準備

始める前に、次の準備が完了していることを確認してください。

  1. Java 開発環境をインストールして構成します。
  2. MySQL などのデータベース管理システムをダウンロードしてインストールします。データベース サーバーのホスト名、ポート、ユーザー名、およびパスワードを必ず覚えておいてください。

データベースの作成

まず、ユーザー情報を保存するデータベースを作成する必要があります。MySQL では、次の SQL コマンドを使用して「userdb」という名前のデータベースを作成できます。

CREATE DATABASE userdb;

次に、ユーザー情報を保存するために「users」という名前のテーブルを作成します。テーブルには次の列が含まれます。

  • id: ユーザーの一意の識別子 (主キー)
  • username:ユーザー名
  • password:パスワード

以下は、「users」テーブルを作成する SQL コマンドです。

USE userdb;

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

Java プログラムを作成する

ここで、JDBC 経由でデータベースに接続し、ユーザーを認証する Java プログラムを作成します。

必要なライブラリをインポートする

まず、Java で JDBC のライブラリをインポートします。

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

データベースに接続する

Java では、データベースに接続するには、データベースの URL、ユーザー名、パスワードを指定する必要があります。この情報は、データベースへの接続を確立するために使用されます。MySQL データベースに接続するサンプル コードを次に示します。

public class JDBCLoginExample {
    
    
    // 数据库 URL,注意将 <hostname>、<port>、<database>、<username> 和 <password> 替换为实际值
    private static final String DB_URL = "jdbc:mysql://<hostname>:<port>/<database>";
    private static final String USER = "<username>";
    private static final String PASSWORD = "<password>";

    public static void main(String[] args) {
    
    
        try {
    
    
            // 注册 JDBC 驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 建立数据库连接
            Connection connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);

            // TODO: 在这里执行后续操作

            // 关闭数据库连接
            connection.close();
        } catch (SQLException | ClassNotFoundException e) {
    
    
            e.printStackTrace();
        }
    }
}

上記のコードでは、Class.forName()メソッドを使用して MySQL JDBC ドライバーをロードし、DriverManager.getConnection()メソッドを通じてデータベースとの接続を確立します。<hostname><port><database><username>および を実際のデータベース情報に置き換えてください<password>

ユーザ認証

次に、ユーザーを認証するコードを作成します。ユーザーはユーザー名とパスワードを入力し、一致するレコードがデータベースに存在するかどうかを確認します。

// 用户输入的用户名和密码
String inputUsername = "user1";
String inputPassword = "password123";

// SQL 查询语句
String query = "SELECT * FROM users WHERE username = ? AND password = ?";
try {
    
    
    // 创建 PreparedStatement 对象
    PreparedStatement preparedStatement = connection.prepareStatement(query);
    
    // 设置查询参数
    preparedStatement.setString(1, inputUsername);
    preparedStatement.setString(2, inputPassword);
    
    // 执行查询
    ResultSet resultSet = preparedStatement.executeQuery();
    
    // 检查是否存在匹配的用户
    if (resultSet.next()) {
    
    
        System.out.println("登录成功!");
    } else {
    
    
        System.out.println("用户名或密码不正确。");
    }
    
    // 关闭资源
    resultSet.close();
    preparedStatement.close();
} catch (SQLException e) {
    
    
    e.printStackTrace();
}

完全な Java プログラム

以下は、データベースへの接続、ユーザーの認証、データベース接続の終了を含む完全な Java プログラムです。

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

public class JDBCLoginExample {
    
    
    // 数据库 URL,注意将 <hostname>、<port>、<database>、<username> 和 <password> 替换为实际值
    private static final String DB_URL = "jdbc:mysql://<hostname>:<port>/<database>";
    private static final String USER = "<username>";
    private static final String PASSWORD = "<password>";

    public static void main(String[] args) {
    
    
        try {
    
    
            // 注册 JDBC 驱动程序
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 建立数据库连接
            Connection connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);

            // 用户输入的用户名和密码
            String inputUsername = "user1";
            String inputPassword = "password123";

            // SQL 查询语句
            String query = "SELECT * FROM users WHERE username = ? AND password = ?";
            try {
    
    
                // 创建 PreparedStatement 对象
                PreparedStatement preparedStatement = connection.prepareStatement(query);

                // 设置查询参数
                preparedStatement.setString(1, inputUsername);
                preparedStatement.setString(2, inputPassword);

                // 执行查询
                ResultSet resultSet = preparedStatement.executeQuery();

                // 检查是否存在匹配的用户
                if (resultSet.next()) {
    
    
                    System.out.println("登录成功!");
                } else {
    
    
                    System.out.println("用户名或密码不正确。");
                }

                // 关闭资源
                resultSet.close();
                preparedStatement.close();
            } catch (SQLException e) {
    
    
                e.printStackTrace();
            }

            // 关闭数据库连接
            connection.close();
        } catch (SQLException | ClassNotFoundException e) {
    
    
            e.printStackTrace();
        }
    }
}

<hostname><port><database><username>および を実際のデータベース情報に置き換えてください<password>このプログラムは、ユーザーが入力したユーザー名とパスワードをデータベース内のレコードと比較し、結果に基づいて適切なメッセージを出力します。

この例では、JDBC を使用してデータベースに接続し、PreparedStatement オブジェクトを作成し、クエリ操作を実行し、リソースを閉じる方法を示します。ユーザー登録機能の追加やエラー処理など、必要に応じて拡張することができます。この例が JDBC とデータベース接続の理解に役立つことを願っています。

著者情報

著者:Fanyi
CSDN: https: //techfanyi.blog.csdn.net
Nuggets:https://juejin.cn/user/4154386571867191

おすすめ

転載: blog.csdn.net/qq_21484461/article/details/133563198