Javaデータベース接続

1.JDBCはじめに

MySQL1.1 クライアントがデータベースにアクセスするために動作する方法:

(1) サードパーティのクライアントを使用してMySQL: SQLyogNavicatSQLWaveMyDB StudioEMS SQL Manager for MySQL
(2)MySQL組み込みのコマンド ラインを使用してアクセスします
(3) を使用しJavaMySQLデータベースにアクセスします

1.2 とはJDBC

JDBC APIJava APIあらゆる種類の表形式データ、特にリレーショナル データベースに格納されているデータにアクセスできるものです。データベース接続JDBCを表します。これはデータベースにアクセスするための、データベースの特定の操作にも特定の実装クラス、つまりデータベース ドライバーが必要です。各データベースベンダーは、自社のデータベースの通信形式に合わせて独自のデータベースドライバーを記述しており、データベースドライバーはデータベースベンダーから提供されます。Java

JDBCJava

ここに画像の説明を挿入

1.3JDBC開発に

使用したパッケージ 説明する
java.sql JDBCデータベースへのアクセスに関連するすべてのインターフェイスとクラス
javax.sql データベース拡張パッケージは、データベースの追加機能を提供します。例: 接続プール
データベースドライバー 大手データベースベンダーが提供しており、別途ダウンロードが必要なJDBCインターフェース

1.4JDBCコアAPI

インターフェイスまたはクラス 効果
DriverManager クラス データベースドライバーの管理と登録、データベース接続オブジェクトの取得
接続インターフェース Statement オブジェクトと PreparedStatement オブジェクトの作成に使用できる接続オブジェクト
ステートメントインターフェイス SQL ステートメント オブジェクト。SQL ステートメントをデータベース サーバーに送信するために使用されます。
PreparedStatement インターフェイス Statement のサブインターフェイスである SQL ステートメント オブジェクト
ResultSet インターフェース データベース クエリの結果セットをカプセル化し、それをクライアント Java プログラムに返すために使用されます。

2. Java MySQL 接続

2.1. MySQL インストールバージョンの表示

ショートカット キー win+r を使用してコマンド プロンプトを開き、Enter を押してmysql --versionMySQL バージョンを表示します。
ここに画像の説明を挿入

2.2 対応するドライバー jar パッケージをダウンロードする

Java を MySQL に接続するために必要なドライバー パッケージのダウンロード アドレスは次のとおりです:
https://downloads.mysql.com/archives/cj/
ここに画像の説明を挿入

2.3 ドライバーの依存関係をプロジェクトに追加する

対応するバージョンを選択してダウンロードし、解凍します。
ここに画像の説明を挿入
取得したjarパッケージファイルを、対応するプロジェクトのlibライブラリにインポートします。
ここに画像の説明を挿入
ドライバー jar パッケージをプロジェクト ライブラリの依存関係に追加します。
ここに画像の説明を挿入

2.4 テストデータの作成

MySQL で JDBC データベースを作成し、Web サイトのデータテーブルを作成します。テーブル構造は次のとおりです。

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

ここに画像の説明を挿入

データを挿入すると、対応する SQL ステートメントは次のようになります。

INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'),
                              ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'),
                              ('3', '微博', 'https://weibo.com/', '20', 'CN'),
                              ('4', 'Facebook', 'https://www.facebook.com/', '3', 'USA'),
                              ('5', '腾讯', 'https://www.qq.com/', '9', 'CN');

データテーブルを以下に示します。
ここに画像の説明を挿入

2.5MySQLデータベースに接続する

ここに画像の説明を挿入
次の例ではJDBC接続MySQLデータベースを使用していますが、ユーザー名やパスワードなどの一部のデータは開発環境に応じて設定する必要があります。

package com.itheima;

import java.sql.*;

public class jdbcdemo {
    
    

    // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
    // static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    // static final String DB_URL = "jdbc:mysql://localhost:3306/jdbc";

    // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost:3306/jdbc?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";

    // 数据库的用户名与密码,需要根据自己的设置
    static final String USER = "";
    static final String PASS = "";

    public static void main(String[] args) {
    
    
        Connection conn = null;
        Statement stmt = null;
        try {
    
    
            // 注册 JDBC 驱动
            Class.forName(JDBC_DRIVER);

            // 打开链接
            System.out.println("连接数据库...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // 执行查询
            System.out.println(" 实例化Statement对象...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name, url FROM websites";
            ResultSet rs = stmt.executeQuery(sql);

            // 展开结果集数据库
            while (rs.next()) {
    
    
                // 通过字段检索
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String url = rs.getString("url");

                // 输出数据
                System.out.print("ID: " + id);
                System.out.print(", 站点名称: " + name);
                System.out.print(", 站点 URL: " + url);
                System.out.print("\n");
            }
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
    
    
            // 处理 JDBC 错误
            se.printStackTrace();
        } catch (Exception e) {
    
    
            // 处理 Class.forName 错误
            e.printStackTrace();
        } finally {
    
    
            // 关闭资源
            try {
    
    
                if (stmt != null)
                    stmt.close();
            } catch (SQLException se2) {
    
    
            } // 什么都不做
            try {
    
    
                if (conn != null)
                    conn.close();
            } catch (SQLException se) {
    
    
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

上記の実行例の出力は次のとおりです。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_51571728/article/details/126736461