私はいくつかのデータベースエンジン(例えば、MySQL、PostgreSQLなど)と相互運用するscalaプログラムを作成します。JDBCを使用してテーブルクエリを作成すると、異なるデータベースエンジンで動作しない
SQLクエリを処理するためにJDBC APIを使用します。私はテーブルを作成するためにクエリを使用し、ユーザーが指定したフィールドを持つテーブルを作成したい場合、これらのフィールドはスペースやアクセント付きの単語を含むことができる名前です。例えば
、2つのフィールド、'列1'と'列2' VARCHARフィールドとしてとテーブルダミーを作成します。
フィールドに含まれるスペースを維持しながら、MySQLデータベースに対してこのクエリを書く、我々は次のようにクエリでバッククォートを使用する必要があります。同様に
CREATE TABLE dummy (`column 1` varchar(20), `column 2` varchar(20));
、PostgreSQLのために、このクエリを記述するための正しい方法スペースを保存している間:
CREATE TABLE dummy ("column 1" varchar(20), "column 2" varchar(20));
多分、別のデータベースエンジンの場合、このクエリを書く別の方法があります。
上記のconstrainstを使用してこのクエリを記述し、JDBCを使用して任意のデータベースエンジンで動作する標準的な方法はありますか?
ご回答いただきありがとうございます。
構文でデータベース固有のニュアンスのいくつかを処理するHibernateのようなORMツールの使用を検討できます。 –
いいえ。しかし、スペースとカラム名、大文字と小文字を区別する名前を扱うのは悪夢です。私はただそれを禁じるだろう。またはスペースをアンダースコアに置き換えます。 –