sql基礎知識-7


オープン・データベース接続(ODBC)API(通常はC/C++)では、Microsoftで作成された=>JAVAに書き込むことはできません(プログラミング言語が異なるため)
=>DBMSは異なるAPIを有し、プログラミングの不一致の問題を解決するためにAPIを統一する(方法使用)
=>ODBC API定義
=>DBMS製造元がODBC API規格に従ってクラスとメソッドを作成
ODBCを使用する場合はAPIが同じなので、DBMSごとに個別にプログラミングする必要はありません.
ODBC Driverの操作方法
1.仕入先APIの呼び出し
2.DBMSと直接通信(速度の欠点X)
ODBCのメリット
=>DBMSは単独でプログラミングする必要はありません.
ODBCの欠点
=>実行速度が遅い場合があります.
Native API? (コンテキストに基づいて説明する必要があります)
1.DBMSメーカーが提供するC/C++API<-JDBC APIの意味
2.オペレーティングシステムによって機械言語にコンパイルされたAPI<-プログラミングの世界で一般的に言われている意味
各タイプはダウンロードする必要があります
タイプ1のドライバpcにベンダーとODBCをインストールする必要があります(ただしjreでは)
タイプ2のドライバpcにベンダーとODBC+をインストールする必要がありますドライバが単独で停止する必要があります
タイプ3(最近あまり使われていない)ドライバDBMSでドライバをダウンロードする必要はありません.ただし中継サーバが必要なため、追加購入費用がかかります.&スピードも遅い.
タイプ4でダウンロードして、DBMSサーバーと直接通信する必要があります.
主要JDBC API
ドライバインタフェース-JDBCドライバ情報の処理方法、接続オブジェクトの準備方法
インタフェース-DBMS接続に関するタスクを実行し、staationオブジェクトを準備します.
Statement Interface:SQLからDBMSへのタスクを実行し、ResultSetオブジェクトを準備する
コールバックインタフェース-DBMSはselect executionを実行してインポート操作を含む
2022 03-03午後12:30~40 JDBCインストール
JDBCユーザーガイド
https://mariadb.com/kb/en/about-mariadb-connector-j/#using-the-driver
VenderAPI = NativeAPI
JDBCが登場する背景-ODBCはC/C++で作成されているためJAVAとしては使用できないためJAVA言語(JDBC Driver)としてしか使用できない
JAvax=>拡張用パッケージ(extendionの略)
ドキュメントを常に表示
ドライバマネージャに登録して使用する必要があります
java.sql.Driver driver = DriverManager.getDriver("jdbc:mariadb://");
System.out.println(driver);
  java.sql.Driver driver2 = DriverManager.getDriver("jdbc:oracle:thin://"); => JDBC URL 규칙을 맞춰야함항상 문서를 봐야지 드라이버를 꺼낼 수 있음 규격이 있음 
  System.out.println(driver2);

  java.sql.Driver driver3 = DriverManager.getDriver("jdbc:sqlserver://");
JDBC登録方法:ダイレクトドライバ実装オブジェクトの作成と登録
クラスは静的ブロック内にあるため、ロード時に作成されるため、オブジェクトを直接作成する必要はありません.
*完全限定class name意味:パッケージ名を含むクラス名
-.properties fileは、key/value形式の環境変数を格納するための簡単なファイル形式です.
ex)key=value(keyとvalueの間にスペースは使用できません)
&1行にkey/valueが1つ必要です
ex) jdbc.url=jdbc:mariadb://
key名を作成すると、オブジェクトマップナビゲーション言語=>オブジェクト名.構成名.構成名.使用方法は簡単に値を分けることができます.
値がポップアップされた場合、getProperties(ファイルパス)
//DRiverManager自動登録!
//=>DriverManagerのgetDriver()がjavaを呼び出します.sql.Driverの実装を要求すると、
//1)JDBCドライバ初期化処理は実行されていません.
//-CLASSSPATHパスに設定されているすべての*.jarファイルの場合
//サービスローダ規則に従ってDriverインプリメンテーションを検索してロードします.
//-JVM Property「jdbc.drivers」という名前で実装されたDriverインプリメンテーションボディロード.
//2)JDBCドライバの初期化プロセスを一度だけ実行した場合、
//-登録されているDriverインプリメンテーションリストで検索して返します.
  java.sql.Driver driver = DriverManager.getDriver("jdbc:mariadb://");
=>ドライバモード例位置C:Usersビットgitビットリサーチjava-langアプリケーションsrcメインjava comeomcsjdbcex 1\Ex 0110.java
  java.sql.Driver oracleDriver = new oracle.jdbc.OracleDriver();


  DriverManager.registerDriver(oracleDriver);

  java.sql.Driver driver = DriverManager.getDriver("jdbc:oracle:thin://");
  System.out.println(driver);
=>以前はdriverをManagerに渡してロードすべきでしたが、現在は
=>
Properties props = new Properties();
props.load(new FileReader("./jdbc-driver.properties"));
System.out.println(props.getProperty("jdbc.driverClassName"));
System.out.println(props.getProperty("jdbc.url"));
  //위의 방식을 사용하면 Driver 구현체를 소스 파일에 직접 명시할 필요가 없다.
  Class.forName(props.getProperty("jdbc.driverClassName"));
  java.sql.Driver driver = DriverManager.getDriver(props.getProperty("jdbc.url"));
  System.out.println(driver);
=>このようにして外部ファイルに保存してロードすることもできます.
しかし、最新の方法は自動ロードです.
java.sql.Driver driver = DriverManager.getDriver("jdbc:mariadb://");
こうして一行を書いて終わりました.
こんな可能性のある理由は?DriverMangerは自動的に検索してロードするため(ドライバを使用する場合)
=>
  • JVMプログラム実行時
    「サービス-provider loading」手順に従います
    .jarファイル内の特定のクラスを検索してロードするか、オブジェクトを自動的に作成します.
  • JDBCもこの規則に従う.
    DriverManagerのgetDriver()を呼び出すと
    「サービス-provider loading」ルールに従います.jarファイルを作成した場合、
    指定したドライバインプリメンテーションは、自動的にオブジェクトをロードして作成します.
    DriverManagerに登録されます.
  • 上記の手順による登録とロード