この記事では、単純な JDBC ログインのケースを使用して、Java Database Connection (JDBC) を使用してデータベースに接続し、ユーザー認証やその他の操作を実行する方法を詳しく紹介します。今回はデータベース初心者向けに、簡単なログインシステムを一から構築していきます。
JDBCとは何ですか?
JDBC は Java Database Connectivity の略称です。これは Java 標準ライブラリの一部であり、データベースとの通信に使用されます。JDBC を通じて、Java アプリケーションは MySQL、Oracle、SQL Server などのさまざまなリレーショナル データベースに接続し、データのクエリ、挿入、更新、削除などのデータベース操作を実行できます。
準備
始める前に、次の準備が完了していることを確認してください。
- Java 開発環境をインストールして構成します。
- 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 |