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
,DashDB使用defaultSchema
定義默認的模式,而在DB2,它使用currentSchema
。我試圖儘量減少冗餘代碼,所以現在,Dash DB的代碼繼承自DB2,使用class HTDialectDashDB < HTDialectDB2
並覆蓋重要的一行/方法 - connection_string_primary_params()
在我的Dash 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代碼所描述的其他四個方法,這是我想避免的,因爲它只是冗餘代碼。
我能在這種情況下做什麼?
無法幫助Ruby,但dashDB(基本上是DB2)對標準DB2連接字符串屬性應該沒問題。 – mustaccio
你是對的!謝謝! – theGreenCabbage