我正在使用以下驅動程序連接到AS400系統。AS400:連接到AS400系統時處理多個模式
「的jdbc:AS400://系統名稱/默認模式;屬性」
我有一個要求,凡在我必須處理多個模式的。
由於模式名稱需要在JDBC URL中提及,我是否需要爲每個模式打開單獨的連接池,我試圖連接?
當前有兩個連接池用於指向相同數據庫屬性的兩個不同模式。
是否有任何其他方式來處理單個連接的多個模式。
我正在使用以下驅動程序連接到AS400系統。AS400:連接到AS400系統時處理多個模式
「的jdbc:AS400://系統名稱/默認模式;屬性」
我有一個要求,凡在我必須處理多個模式的。
由於模式名稱需要在JDBC URL中提及,我是否需要爲每個模式打開單獨的連接池,我試圖連接?
當前有兩個連接池用於指向相同數據庫屬性的兩個不同模式。
是否有任何其他方式來處理單個連接的多個模式。
模式在IBM i(AS/400)上更通常稱爲庫。
您可以使用單個數據庫連接,並使用默認SQL命名約定schema.table
或具有系統命名約定的schema/table
來限定表名。
看到SQL Programming引導「命名」的Toolbox程序員指南的IBM Toolbox for Java JDBC properties部分財產和SQL and system naming conventions主題以獲取更多信息。
通過使用「系統命名」設置,您的會話可以利用每個作業所具有的「庫列表」屬性。它是當系統解析非限定對象的位置時搜索的方案列表。這個概念與Windows或Linux中的路徑概念類似。
除了@JamesA提供的鏈接,還閱讀Birgitta Hauser的兩部分article以及unqualified names上的SQL參考。
使用會話(即作業)庫列表而不是靜態硬編碼模式名稱通常被認爲是最佳實踐。我建議你遵循這種做法。儘管術語模式和庫本質上是同義詞,但我使用IBM i命令CHGCURLIB而不是SET CURRENT SCHEMA,因爲該命令不會限制SQL關於庫列表的行爲。但是我從Birgitta的文章中瞭解到,SET CURRENT SCHEMA完全阻止了庫列表的使用。當前庫成爲庫列表(用戶部分)上的第一個庫。
順便說一句,那個字符串不是你的驅動程序。它更像是連接字符串的模板。 – WarrenT