1
私はさまざまなデータベースのJDBC接続文字列を生成する次のコードスニペットを持っています。この場合、Dash DBとIBM DB2。以下は、DB2で接続文字列を生成するために使用するコードの構造です。今JDBC接続文字列でのクラスとメソッドのRuby継承
def connection_creation_information
@connection_creation_information ||= Class.new(JDBCConnectionCreationInformation) do
private
def connection_string_primary_params(options)
params = []
params << "currentSchema=#{options[:schema] || options[:username]}"
params << options[:jdbc_additional_params] if options[:jdbc_additional_params]
params
end
def connection_string_scheme
'db2'
end
def connection_string_params(options)
super + ';'
end
def primary_param_separator
';'
end
def base_separator
':'
end
end.new
end
DB2で、それはcurrentSchema
を使用しながら、DashDBは、デフォルトのスキーマを定義するためにdefaultSchema
を使用しています。ダッシュDBのコードは、class HTDialectDashDB < HTDialectDB2
を使用してDB2から継承し、重要な1行/メソッドをオーバーライドします。 - connection_string_primary_params()
私のダッシュDBクラスでは、次
def connection_creation_information
@connection_creation_information ||= Class.new(JDBCConnectionCreationInformation) do
private
def connection_string_primary_params(options)
params = []
params << "defaultSchema=#{options[:schema] || options[:username]}"
params << options[:jdbc_additional_params] if options[:jdbc_additional_params]
params
end
end.new
end
しかし、エラーがそれだけで冗長なコードですので、私は、私は避けたいDB2コードで説明した4つの他の方法を、実装しなければならないことを投げされています。
この場合、私は何ができますか?
Rubyを手助けすることはできませんが、基本的にDB2であるdashDBは、標準のDB2接続文字列プロパティで正常に動作するはずです。 – mustaccio
あなたは正しいです!ありがとうございました! – theGreenCabbage