[TIL] W4D2 SQL Dialect


SQL Dialect


方言設定=DBMSの使い方
ResultSet resultSet = statement.executeQuery("select * from users");
に示すように、"select * from users"に黄色のボックスが表示され、alt+enterを押すと次のように表示されます.
Change dialect to...を選択!

Project SQL DialectをMySQLに変換し、statement.executeQuery()またはstatement.executeUpdate()のパラメータでSQL文を書くと自動的に完了します!
(+)Settings-Language&Frameworks-SQL Dialectsでも設定可能

方言とは何ですか。


Dialectの方言を理解する前に、デフォルトのSQLを理解してください.
SQLには標準のANCI SQLがあり、DBMSベンダーMS-SQL、Oracle、My-SQL、Postgre SQLから提供されるSQLがあります.MS-SQLはT-SQL、OracleはPL/SQLを表します.
ANSI SQLはすべてのDBMS共通の標準SQLですが、DBMSが独自の機能を追加するために作成したため、DBMSで作成したSQLはDBMSでのみ使用できます.
理解を容易にするために、例えばMYSQLは自動インクリメンタルを使用してID値を増加させることができますが、Oracleではこの機能は提供されず、シーケンスを使用して機能を提供します.同じ機能を提供しますが、提供する機能はそれぞれ異なります.これは、同じDBMSであってもバージョンによって異なる場合があります.

Dialect


デフォルトでは、JPAはJDBCレベルのSQLをアプリケーションに直接記述するのではなく、JPAによってSQLを直接記述して実行します.しかし、DBMSタイプごとにSQLが異なることは前述した.JPAがDBMSに基づいてSQLを生成する必要があるが、どのタイプなのか分からない場合は、問題が発生する可能性があります.
だからJPAにどんなDBMSを使うかを教えるのが方言の設定方法ですJPAでDialectを設定し、設定した方言を使用して各DBMSに対応する実装を提供する抽象方言クラスを提供します.
したがって、MariaDBを使用して開発し、Dialect上のMariaDBに設定し、アプリケーションのインストール時にDBMSがOracleである場合、DialectをOralceに設定すると、アプリケーションを正常に実行できます.

ソース


[SpringBootJPA]JPAを使用するために必要なDialectについて説明します。