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);
クラスは静的ブロック内にあるため、ロード時に作成されるため、オブジェクトを直接作成する必要はありません.
*完全限定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インプリメンテーションリストで検索して返します.
=>
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"));
しかし、最新の方法は自動ロードです.
java.sql.Driver driver = DriverManager.getDriver("jdbc:mariadb://");
こうして一行を書いて終わりました.
こんな可能性のある理由は?DriverMangerは自動的に検索してロードするため(ドライバを使用する場合)
=> JVMプログラム実行時
「サービス-provider loading」手順に従います
.jarファイル内の特定のクラスを検索してロードするか、オブジェクトを自動的に作成します. JDBCもこの規則に従う.
DriverManagerのgetDriver()を呼び出すと
「サービス-provider loading」ルールに従います.jarファイルを作成した場合、
指定したドライバインプリメンテーションは、自動的にオブジェクトをロードして作成します.
DriverManagerに登録されます. 上記の手順による登録とロード
=>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は自動的に検索してロードするため(ドライバを使用する場合)
=>
「サービス-provider loading」手順に従います
.jarファイル内の特定のクラスを検索してロードするか、オブジェクトを自動的に作成します.
DriverManagerのgetDriver()を呼び出すと
「サービス-provider loading」ルールに従います.jarファイルを作成した場合、
指定したドライバインプリメンテーションは、自動的にオブジェクトをロードして作成します.
DriverManagerに登録されます.
Reference
この問題について(sql基礎知識-7), 我々は、より多くの情報をここで見つけました https://velog.io/@gksmf13/sql기초지식-7テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol