次に、データベース接続を取得します

次に、データベース接続を取得します

2.1要素1:ドライバーインターフェイス実装クラス

2.1.1ドライバーインターフェースの紹介

ドライブネットワークディスクアドレス:

  • java.sql.Driverインターフェースは、すべてのJDBCドライバーが実装する必要のあるインターフェースです。このインターフェイスはデータベースベンダーに提供されており、データベースベンダーによって実装方法が異なります。

  • プログラムでDriverインターフェースを実装するクラスに直接アクセスする必要はありませんが、ドライバーマネージャークラス(java.sql.DriverManager)がこれらのDriver実装を呼び出します。

    • Oracle的驱动:oracle.jdbc.driver.OracleDriver
    • MySqlドライバー:com.mysql.jdbc.Driver
  • ドライバーjarパッケージをJavaプロジェクトのディレクトリにコピーします。通常は、新しいlibフォルダーを作成します。

注:動的Webプロジェクト(動的Webプロジェクト)の場合、ドライバーjarをWebContent(一部の開発ツールはWebRootと呼ばれます)ディレクトリーのWEB-INFディレクトリーのlibディレクトリーに配置する必要があります。

2.1.2 JDBCドライバーのロードと登録

  • ドライバーのロード:JDBCドライバーをロードするには、クラスクラスの静的メソッドforName()を呼び出し、ロードするJDBCドライバーのクラス名を渡す必要があります。

    • Class.forName(“ com.mysql.jdbc.Driver”);
  • ドライバーの登録:DriverManagerクラスは、ドライバー管理を担当するドライバーマネージャークラスです。

    • DriverManager.registerDriver(com.mysql.jdbc.Driver)を使用してドライバーを登録します

    • 通常、明示的にドライバクラスドライバインターフェイスがあるため、クラス・ドライバ・インスタンスに登録するなregisterDriver DriverManagerクラス()メソッドを呼び出していないれているコードの静的ブロック、これに静的コードブロックが含まれ、にDriverManager.registerDriver()メソッドを呼び出し自身のインスタンスを登録します。次の図は、MySQLドライバー実装クラスのソースコードです。

2.2 要素二:URL

  • JDBC URLは、登録されたドライバーを識別するために使用されます。ドライバーマネージャーはこのURLを使用して、データベースへの接続を確立するための正しいドライバーを選択します。

  • JDBC URL標準は3つの部分で構成され、各部分はコロンで区切られています。

    • jdbc:サブプロトコル:サブネーム
    • プロトコル:JDBC URLのプロトコルは常にjdbcです。
    • サブプロトコル:サブプロトコルは、データベースドライバーを識別するために使用されます。
    • サブネーム:データベースを識別する方法。サブ名は、さまざまなサブプロトコルに従って変更できます。サブ名を使用する目的は、データベース特定するための十分な情報提供することです。ホスト名(サーバーのIPアドレスに対応)、ポート番号、データベース名が含まれます
  • 例:

  • 一般的に使用されるいくつかのデータベースのJDBC URL

    • MySQL接続URLの書き方:

      • jdbc:mysql://ホスト名:mysqlサービスポート番号/データベース名?パラメータ=値&パラメータ=値
      • jdbc:mysql:// localhost:3306 / xiaoran
      • jdbc:mysql:// localhost:3306 / xiaoran ?useUnicode = true&characterEncoding = utf8(JDBCプログラムとサーバー側の文字セットが一致しない場合、文字化けが発生するため、パラメーターを介してサーバー側の文字セットを指定できます)
      • jdbc:mysql:// localhost:3306 / xiaoran?user = root&password = 123456
    • Oracle 9iの接続URLの書き方:

      • jdbc:oracle:thin:@host name:oracle service port number:database name
      • jdbc:oracle:thin:@localhost:1521:xiaoran
    • SQLServer接続URLの書き込み方法:

      • jdbc:sqlserver://ホスト名:sqlserverサービスのポート番号:DatabaseName =データベース名

      • jdbc:sqlserver:// localhost:1433:DatabaseName = xiaoran

2.3要素3:ユーザー名とパスワード

  • ユーザー、パスワードは、「属性名=属性値」でデータベースに通知できます
  • DriverManagerクラスのgetConnection()メソッドを呼び出して、データベースへの接続を確立できます。

2.4データベース接続方法の例

2.4.1接続方法1

	@Test
    public void testConnection1() {
        try {
            //1.提供java.sql.Driver接口实现类的对象
            Driver driver = null;
            driver = new com.mysql.jdbc.Driver();

            //2.提供url,指明具体操作的数据
            String url = "jdbc:mysql://localhost:3306/school";

            //3.提供Properties的对象,指明用户名和密码
            Properties info = new Properties();
            info.setProperty("user", "root");
            info.setProperty("password", "abc123");

            //4.调用driver的connect(),获取连接
            Connection conn = driver.connect(url, info);
            System.out.println(conn);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

注:サードパーティデータベースのAPIは、上記のコードに明示的に表示されます

2.4.2接続方法2

	@Test
    public void testConnection2() {
        try {
            //1.实例化Driver
            String className = "com.mysql.jdbc.Driver";
            Class clazz = Class.forName(className);
            Driver driver = (Driver) clazz.newInstance();

            //2.提供url,指明具体操作的数据
            String url = "jdbc:mysql://localhost:3306/school";

            //3.提供Properties的对象,指明用户名和密码
            Properties info = new Properties();
            info.setProperty("user", "root");
            info.setProperty("password", "abc123");

            //4.调用driver的connect(),获取连接
            Connection conn = driver.connect(url, info);
            System.out.println(conn);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

注:最初の方法と比較して、ドライバーは、サードパーティデータベースのAPIをコードに反映する代わりに、ドライバーをインスタンス化するために使用されます。インターフェイス指向プログラミングのアイデアを反映しています。

2.4.3接続モード3

	@Test
    public void testConnection3() {
        try {
            //1.数据库连接的4个基本要素:
            String url = "jdbc:mysql://localhost:3306/school";
            String user = "root";
            String password = "abc123";
            String driverName = "com.mysql.jdbc.Driver";

            //2.实例化Driver
            Class clazz = Class.forName(driverName);
            Driver driver = (Driver) clazz.newInstance();
            //3.注册驱动
            DriverManager.registerDriver(driver);
            //4.获取连接
            Connection conn = DriverManager.getConnection(url, user, password);
            System.out.println(conn);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

注:DriverManagerを使用してデータベースに接続します。

2.4.4接続方法4

	@Test
    public void testConnection4() {
        try {
            //1.数据库连接的4个基本要素:
            String url = "jdbc:mysql://localhost:3306/school";
            String user = "root";
            String password = "abc123";
            String driverName = "com.mysql.jdbc.Driver";

            //2.加载驱动 (①实例化Driver ②注册驱动)
            Class.forName(driverName);

            /*
            在mysql的Driver类中声明有这样的静态方法:
            static {
                try {
                    DriverManager.registerDriver(new Driver());
                } catch (SQLException var1) {
                    throw new RuntimeException("Can't register driver!");
                }
            }
             */


            //3.获取连接
            Connection conn = DriverManager.getConnection(url, user, password);
            System.out.println(conn);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

注:ドライバーを明示的に登録する必要はありません。静的コードブロックはDriverクラスのソースコードに既に存在するため、ドライバーの登録が実現されます。

2.4.5接続モード5(最終バージョン)

    @Test
    public void testConnection5() throws Exception {
        //1.加载配置文件
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
        Properties pros = new Properties();
        pros.load(is);

        //2.读取配置文件
        String url = pros.getProperty("url");
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        String dirverClass = pros.getProperty("driverClass");

        //3.加载驱动
        Class.forName(dirverClass);

        //4.获取连接
        Connection conn = DriverManager.getConnection(url, user, password);
        System.out.println(conn);
    }

このうち、構成ファイルはプロジェクトのsrcディレクトリで宣言されています:[jdbc.properties]

user=root
password=123456
url=jdbc:mysql://localhost:3306/school
driverClass=com.mysql.jdbc.Driver

説明:構成ファイルを使用して構成情報を保存し、構成ファイルをコードにロードします

構成ファイルを使用する利点:

①コードとデータの分離を実現し、構成情報の変更が必要な場合は、詳細コードなしで直接構成ファイルで変更
②構成情報を変更した場合、再コンパイルの工程を省略します。

おすすめ

転載: www.cnblogs.com/xiaoran991/p/12725119.html