⇧ 鉱石の電気分解だと、光合成に比べて酸素を生成できる期間が短いような気はしますけどね、持続可能というわけにはいかなさそうね...
JDBC APIとは
Oracleの公式のドキュメントでは、
JDBC (Java Database Connectivity) APIは、Javaプログラミング言語からの汎用的なデータ・アクセスを提供します。JDBC APIを使用して、リレーショナル・データベース、スプレッドシート、フラット・ファイルなど、実質上あらゆるデータ・ソースにアクセスすることができます。JDBCテクノロジは、ツールと代替インタフェースを構築できる共通のベースも提供しています。
https://docs.oracle.com/javase/jp/8/docs/technotes/guides/jdbc/index.html
⇧ とあるように、異なる「RDBMS(Relational DataBase Management System)」であろうとも、共通の操作で済ませることができると。
イメージとしては、
⇧ 上図のように、利用するデータベースが異なっていたとしても、アプリケーション側では、データベースの差異に関係なくコーディングできると。
「データベース接続情報」は異なるのだけど、外部ファイルなどから取得するようにしておけば、アプリケーション側でのコーディング内容は、データベースが変わったとしても変える必要は無いと。
つまり、データベース毎にコーディングを変更しないで良いと。
「JDBC API」は、Javaの標準APIとして用意されている、データベースとやり取りするためのAPIであると。
Pythonにおけるデータベースとのやり取りするAPIについての仕様は「PEP 249 – Python Database API Specification v2.0」
で、本題。
Pythonにおけるデータベースとのやり取りのAPIはどうなのか?
そもそも、Pythonでデータベースとやり取りするためのAPIについての仕様は、
という仕様で定義されていると。
で、
⇧「RDBMS(Relational DataBase Management System)」毎に、微妙に実装方法が異なるという地獄の様相を呈していますと...
つまり、利用するデータベースが異なる毎に、それぞれのコーディングが必要になってしまうと...
そもそも、
⇧ 上記サイト様のコメントにもあるように、PostgreSQLで「psycopg2」を利用する場合「Prepared statement」が用意されていないらしい...
「PEP 249」でも「Prepared statement」って言葉が出て来ないので、各ライブラリで対応していないと「Prepared statement」機能はりようできないと...
ちなみに、「Prepared statement」について、Wikipediaの説明はというと、
In database management systems (DBMS), a prepared statement, parameterized statement, or parameterized query is a feature where the database pre-compiles SQL code and stores the results, separating it from data. Benefits of prepared statements are:
- efficiency, because they can be used repeatedly without re-compiling
- security, by reducing or eliminating SQL injection attacks
⇧ とあり、「SQLインジェクション」という脆弱性に対する防御手段ともなるとあるので、「Prepared statement」機能は利用できないとマズイ気がするんだが...
そう考えると、Javaの標準ライブラリで用意されているJDBC(Java DataBase Connectivity) APIは、必要な機能を用意してくれていて親切ということですかね。
まぁ、上記サイト様にありますように、「SQLAlchemy」という「ORM(Object Relational Mapping)」を利用するのが良さそうな気がしますね。
う~む、Pythonはデータベース系のアプリケーション向きであって、Webアプリケーション向きでは無いんかね...
まぁ、機械学習などの科学計算系のライブラリが充実してるぐらいしかPythonを使うメリットが思いつかんのよね...
Webアプリケーションでも、「サーバレス」のようなものであれば、Pythonを利用するメリットはあるのかもしれないけど...
Pythonを学習するモチベーションが上がらないんよね...
毎度モヤモヤ感が半端ない…
今回はこのへんで。